2016-06-10 89 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