2

さまざまなリソースの定期的なポーリングをサポートするために利用できるツール/フレームワークはありますか? たとえば、新しいコンテンツを 1 日に 1 回チェックする RSS アグリゲーターや、ユーザーの Twitter アカウントを 1 週間に 1 回ポーリングする、ユーザーの Twitter アバターのキャッシュを維持するツールを考えています。

実際のフェッチやフィード処理を実行するためのツールを探しているわけではありません。最後のフェッチの日付を保存したり、次のフェッチが必要になったときにウェイクアップしたりするものを探しています。

Resque や Delayed Job などのメッセージング ツールは、定期的なタスクを処理するのではなく、特定の着信要求を「タイムシフト」するために最適化されています。言い換えれば、すべてのユーザーが自分の Twitter アバターを取得するために永続的なジョブを保持したいとは思わないでしょう。しかし、私は修正される立場にあります:D.

4

3 に答える 3

2

アナクロンはこれに最適です。1 日 1 回起動して、バックグラウンド フェッチをトリガーします。バックグラウンド fetcher は、SQL に対してクエリを実行して、更新が必要な次の N ユーザーを見つけ、そのバッチを実行します。

http://en.wikipedia.org/wiki/Anacron

「伝統的にcronによって行われる定期的なコマンドスケジューリングを実行しますが、システムが継続的に実行されているとは想定していません。したがって、24時間稼働していないシステムでの日次、週次、および月次のジョブの実行を制御するために使用できます一日。

Anacron は、マシンのアップタイムが許す限り、これらのコマンドが指定された間隔で実行されるようにします。」

于 2012-04-21T04:40:10.440 に答える
1

このhttps://github.com/bvandenbos/resque-schedulerを使用して、ニーズに応えました。yml ファイルのような cron を作成すると、ジョブは resque ジョブと同じようにスケジュールされます。すでに resque を使用している場合は、これをお勧めします。

于 2012-04-12T20:06:31.913 に答える
0

うーん...オンデマンドで死んだり目覚めたりするというあなたの要件は、ライブラリに事前に組み込まれるには理想的すぎるようです。デーモンがジョブを実行した後に停止した場合、必要に応じて起動するようにガイドする別のデーモン/実行タスクが再び必要になりますが、それは望ましくありません。

そうは言っても、そのforeverbようなタスクのカスタムデーモンとして使用してみてください。それは非常にシンプルで効率的で、パーツを分離することができます。要件を記述する 1 つのスクリプトと、それを実行する 1 つのデーモン。

https://github.com/DAddYE/foreverb

探しているものが見つかったら、必ず世界に知らせてください。

于 2012-04-17T04:09:21.753 に答える