2

FluentScheduler を使用していますが、レジストリ クラスが 2 つあるという問題があります。

FeedRegistry
SitemapRegistry

FeedRegistry は 15 分ごとに実行され、sitemapregistry は 6 時間ごとに実行されるはずです。

私はこのコードを持っています:

 TaskManager.Initialize(new FeedRegistry());
 TaskManager.Initialize(new SitemapRegistry());

Schedule<FeedTask>().ToRunNow().AndEvery(15).Minutes();
Schedule<SitemapTask>().ToRunNow().AndEvery(6).Hours();

サイトマップタスク

    public class SitemapTask : ITask
    {
        private readonly ISitemapHelper _sitemapHelper;

        public SitemapTask(ISitemapHelper  sitemapHelper)
        {
            _sitemapHelper = sitemapHelper;
        }

        public void Execute()
        {
                _sitemapHelper.Process(false);
        }
    }

フィードタスク

    public class FeedTask : ITask
    {
        private readonly IFeedHelper _feedHelper;

        public FeedTask(IFeedHelper feedHelper)
        {
            _feedHelper = feedHelper;
        }

        public void Execute()
        {
            _feedHelper.Process(false);
        }
    }

私は Autofac を使用しており、依存関係は「InstancePerLifetimeScope」として登録されています。問題は、FeedTask がアプリケーションの開始時に 1 回だけ実行され、15 分後に再度実行されないことです。ただし、次のように初期化を逆にすると

Schedule<SitemapTask>().ToRunNow().AndEvery(6).Hours();
Schedule<FeedTask>().ToRunNow().AndEvery(15).Minutes();

15分ごとに実行されます(サイトマップは6時間ごとには実行されないと思います)

直し方?

4

2 に答える 2