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時間ごとには実行されないと思います)
直し方?