75 lines
2.2 KiB
C#
75 lines
2.2 KiB
C#
using YLErp.BLL.Eod;
|
|
using YLErp;
|
|
using YLErp.BLL;
|
|
using Microsoft.Extensions.Logging;
|
|
using Microsoft.Extensions.Configuration;
|
|
|
|
namespace YLErp.Jobs.Imp
|
|
{
|
|
/// <summary>
|
|
/// 实时持仓计算
|
|
/// </summary>
|
|
public class RealTimeCalcPositionJob : BaseJob
|
|
{
|
|
private readonly ILogger<RealTimeCalcPositionJob> _logger;
|
|
|
|
readonly IConfiguration _configuration;
|
|
|
|
public RealTimeCalcPositionJob(IConfiguration configuration, ILogger<RealTimeCalcPositionJob> logger)
|
|
{
|
|
_logger = logger;
|
|
_configuration = configuration;
|
|
}
|
|
|
|
public override async Task<bool> StartAsync()
|
|
{
|
|
_logger.LogInformation("实时持仓服务开始:{time}", DateTimeOffset.Now);
|
|
//设置波动率计算时的异常处理方法
|
|
VolCaculator.SetExHandler(msg =>
|
|
{
|
|
_logger.LogInformation($"VolCaculator:{msg}");
|
|
});
|
|
return await base.StartAsync();
|
|
}
|
|
|
|
public override async Task<bool> StopAsync()
|
|
{
|
|
_logger.LogInformation("实时持仓服务停止: {time}", DateTimeOffset.Now);
|
|
return await base.StopAsync();
|
|
}
|
|
|
|
public override Task JobImp()
|
|
{
|
|
try
|
|
{
|
|
var stopwatch = new System.Diagnostics.Stopwatch();
|
|
stopwatch.Start(); // 开始监视代码
|
|
RealtimePnlCalc.RealtimePosition(new OptUserInfo(0, "实时持仓服务", OptUserFrom.Service));
|
|
stopwatch.Stop(); // 停止监视
|
|
var msecond = stopwatch.ElapsedMilliseconds; // 获取总时间
|
|
_logger.LogInformation($"实时持仓服务结束:共{msecond}毫秒");
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
_logger.LogError(ex, "实时持仓服务异常:" + ex.Message);
|
|
}
|
|
|
|
return Task.CompletedTask;
|
|
}
|
|
|
|
#region JobStatus Manager
|
|
static JobStatus jobStatus = JobStatus.Init;
|
|
|
|
public override JobStatus GetJobStatus()
|
|
{
|
|
return jobStatus;
|
|
}
|
|
|
|
public override void SetJobStatus(JobStatus status)
|
|
{
|
|
jobStatus = status;
|
|
}
|
|
#endregion
|
|
}
|
|
}
|