1

アドバイスをください。

私の問題は次のとおりです。カスタムのスケジュールされたタスクに依存関係を実装しています。タスク自体は必要な依存関係で初期化されますが、開始時にタスクは実行中のステータスに移行しますが、コードは実行されません

スケジュールされたタスク:

 public class TestJob : ScheduledTask, IJob
{
    private readonly ITestService _testService;

    public TestJob(ITestService service)
    {
        if (service is null)
        {
            throw new ArgumentException(nameof(service));
        }

        _testService = service;

    }
    public override void ExecuteTask()
    {
        _testService.DoSomting("From job");
    }

    public override string TaskName
    {
        get
        {
            return this.GetType().FullName;
        }
    }

テストサービス

public interface ITestService
{
    void DoSomting();
    void DoSomting(string message);
}


 public class TestService : ITestService
{
    public void DoSomting()
    {
        LogHelper.Logger().Information("======> Somting happined");
    }

    public void DoSomting(string message)
    {
        LogHelper.Logger().Information($"======> Somting happined {message}");
    }
}

レジストリ

        private void CreateJob<T>(SchedulingManager manager, string appSettingsName)
        where T : ScheduledTask
    {
        try
        {

            var job = ObjectFactory.Resolve<T>();
            var newUsersAddingJobSettings = settings_eg;

            job.Id = Guid.NewGuid();
            job.Title = job.TaskName;
            job.ScheduleSpecType = settings_eg[0];
            job.ScheduleSpec = settings_eg[1];
            job.ExecuteTime = CrontabHelper.GetExecuteTime(nsettings_eg);
            manager.AddTask(job);
            manager.SaveChanges();

        }
        catch (Exception e)
        {
            ////
        }
    }

ninjet でのサービスの登録

ObjectFactory.Container.RegisterType<ITestService, TestService>();
4

0 に答える 0