私は青空でホストしたいという私の小さなプロジェクトを手に入れようとしています。これはうまく動作するWebアプリケーションです。最近私は今使ってみたいwebjobを見つけました私はコンソールアプリケーションを持っているデータ収集と更新を行うタスクを実行します。
スケジューリングをサポートしていないWebアプリケーションに公開されているので、スケジュールを設定できません。Azure Webjobs SDKを使用してタイマーを使用しましたが、AzureWebJobsStorage
接続文字列私のAzureアカウントはDreamsparkアカウントなので入手できません。Azureアカウントを作成することはできません。
このWebジョブを何とか(何時間も)実行する方法があるのだろうかと思っていました。それ以外の場合は、アカウントを「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にinfinteループを実行させて、一度にx分間スレッドをスリープさせることができます。または、次のスケジュールされた実行までのタイムスパンを計算し、System.Timers.Timerを使用してイベントをトリガーすることもできます。 – Martin
@Martin Ohそう、あまりにも悪い考えではない、私はそのショットを与えるだろうと思う、私は偽に評価されないちょっとしたループを考えている、それの非優雅さを除いて何か間違っている? – Toxicable
実際には問題ではありませんが、これに関する意見は多々ありますが、 http://stackoverflow.com/questions/8815895/why-is-thread-sleep-so-harmful 「スレッド」を追加してください。スリープ(timeInMilliseconds) "または他の何らかのメカニズムではなく、while(true){..}ループで – Martin