所以我試圖讓我的一個小項目去我想在azure上主持,這是一個web應用程序,它工作正常,我最近發現了webjobs,現在我想用它來有一個任務運行數據收集和更新,我有一個控制檯應用程序。
我的問題是,我不能設置一個時間表,因爲它發佈到不支持調度的Web應用程序,所以我嘗試使用Azure Webjobs SDK並使用計時器,但它不會在沒有AzureWebJobsStorage
連接字符串的情況下運行這是我無法得到的,因爲我的Azure帳戶是Dreamspark帳戶,我無法使用它創建Azure存儲帳戶。
所以我想知道是否有某種方式讓這個webjob以某種方式運行(每個小時左右)。否則,如果我只是將我的帳戶升級爲「即用即付」(Pay-As-You-Go)?我還會保留我的免費功能嗎?即SQL Server。Azure訂閱和webjob問題
林不知道這是否是正確的問題,但我試圖谷歌搜索沒有成功。
更新:決定只是讓控制檯應用程序在無限循環中運行,並且生病只是通過門戶進行監視,下面的代碼就是我正在使用的循環。
class Program
{
static void Main()
{
var time = 1000 * 60 * 30;
Timer myTimer = new Timer(time);
myTimer.Start();
myTimer.Elapsed += new ElapsedEventHandler(myTimer_Elapsed);
Console.ReadLine();
}
public static void myTimer_Elapsed(object sender, ElapsedEventArgs e)
{
Functions.PullAndUpdateDatabase();
}
}
不是最優雅的解決方案,但是您可以始終讓webjob運行一個無限循環,每次睡眠線程x分鐘。或者你可以計算時間跨度,直到下一次計劃運行,然後使用System.Timers.Timer觸發事件。 – Martin
@Martin哦,對,這不是一個太糟糕的主意,我想我會給出一個鏡頭,我只是想一段時間循環,從來沒有評估爲假,除了它的非優雅之外有什麼不對? – Toxicable
不應該真的是一個問題,所有雖然有不同的意見,請參閱 http://stackoverflow.com/questions/8815895/why-is-thread-sleep-so-harmful 請確保您添加「線程。睡眠(timeInMilliseconds)「或其他一些機制,而不是在while(true){..}循環中。 – Martin