2016-06-10 36 views
0

我有一个C#.NET Web应用程序,其UI看起来类似于http://www.cronmaker.com/。用户可以从许多选项中选择作业的频率。我需要能够创建一个cron表达式来表示用户所需的频率,并且它必须与Hangfire兼容。我的想法是要么:以编程方式创建基于用户输入的Hangfire cron表达式

  1. 查找现有的库做的。但我一直无法。我听说Quartz可以做到这一点(虽然它会过度),但它似乎可以为某些情况创建cron表达式,但不是其他情况。

  2. 制作我自己的工具,使用cronmaker.com找出格式。但是,cronmaker会以Hangfire认为无效的格式创建cron表达式。对于“每小时”,cronmaker说“0 0 0/1 1/1 *?*”,Hangfire说这是无效的。我发现“0 */1 * * *”的作品。

我需要能够动态生成任何cron表达式。当然,有一个图书馆可以做类似CronLibrary.GetCronExpression(Frequency.EveryNDays,3,“12:00”)的选择,以涵盖每一种可能的情况。有谁知道这样的图书馆?

+0

你能更好地定义你所问的问题吗? –

+0

我有一个看起来像cronmaker.com的页面。用户使用单选按钮,下拉框和文本框来指示期望的频率,例如“每5分钟”,“每个工作日上午9点”或“每个月的第一个星期一”。无论它们表示什么频率,我都需要创建相应的cron表达式。我怎么做? –

+0

@Robin让我试着问一个不同的方式。我看到有人问:“午夜每天的cron表达是什么”,并且有人用针对特定情况的字符串来回应。但我不只需要一个特定的cron表达式;我需要能够动态生成任何cron表达式。 肯定有一个图书馆,在那里,可以这样做 CronLibrary.GetCronExpression(Frequency.EveryNDays,3,“12:00”) 的选项来涵盖所有可能的情况。 –

回答

0

我没有找到一个库,但该网站http://crontab.guru/对创建适用于Hangfire的cron表达式非常有帮助。使用该网站作为参考,我能够编写代码将UI选择映射到cron表达式,反之亦然。

+0

你愿意分享你的代码吗?我需要完全相同的东西! :d – blackorchid