none
WorkerRoleで指定時間に処理を呼び出す RRS feed

  • 質問

  • Azure SDK 1.4 Refreshでソフトウェアを開発しています。

    指定時間にある関数を呼び出したいのですが(たとえば毎日朝6時にとか)

    いい方法はないでしょうか?

    ループで延々時間をチェックする実装以外で何かありましたら教えてください。

    よろしくお願いします。

    2011年5月20日 4:46

回答

  • 一つのアイディアですが、Startup Taskでタスクスケジューラの登録をしてみてはいかがでしょうか?

    スタートアップタスクを使ってみる

     

    タスクスケジューラの登録バッチ例

    md "%~dp0"
    schtasks /create /sc daily /MO 1 /tn TASK1 /ru "NT AUTHORITY\LOCALSERVICE" /tr "cmd /c """%~dp0BATCH.cmd"""" /st 00:00

    Azureでタスクスケジューラの登録をやってみたことはないので、動かなかったらごめんなさい。


    関数を呼ぶとなるとタスクスケジューラからじゃ難しいかもしれませんね。すいません。
    2011年5月20日 5:21
  • 必要な精度にあわせて Sleep なり Timer なりでループしてチェックする実装で全然かまわないと思いますけど…、逆に、ループすることでどのような問題が出ると考えておられるのでしょうか? 設定変更等によるロールの再起動等の対応でしょうか? そのあたりの話があれば、別の提案もでてくるかもしれませんね。

    ある程度の実装を自分で行いたくない場合、AzureToolkit 等のスケジューラが提供される既存のライブラリを利用するという手もあります。(http://azuretoolkit.codeplex.com/)

    2011年5月23日 4:00

すべての返信

  • 一つのアイディアですが、Startup Taskでタスクスケジューラの登録をしてみてはいかがでしょうか?

    スタートアップタスクを使ってみる

     

    タスクスケジューラの登録バッチ例

    md "%~dp0"
    schtasks /create /sc daily /MO 1 /tn TASK1 /ru "NT AUTHORITY\LOCALSERVICE" /tr "cmd /c """%~dp0BATCH.cmd"""" /st 00:00

    Azureでタスクスケジューラの登録をやってみたことはないので、動かなかったらごめんなさい。


    関数を呼ぶとなるとタスクスケジューラからじゃ難しいかもしれませんね。すいません。
    2011年5月20日 5:21
  • 必要な精度にあわせて Sleep なり Timer なりでループしてチェックする実装で全然かまわないと思いますけど…、逆に、ループすることでどのような問題が出ると考えておられるのでしょうか? 設定変更等によるロールの再起動等の対応でしょうか? そのあたりの話があれば、別の提案もでてくるかもしれませんね。

    ある程度の実装を自分で行いたくない場合、AzureToolkit 等のスケジューラが提供される既存のライブラリを利用するという手もあります。(http://azuretoolkit.codeplex.com/)

    2011年5月23日 4:00