1

Webサービスからデータを取得し、mysqlデータベースにデータを入力するスクリプトがあります。これは毎分実行されるという考えなので、スクリプトを実行するためにcronジョブを追加しました。

ただし、crontabを変更せずに、ジョブを一時停止して再開できるようにしたいと思います。

これを達成するためのベストプラクティスは何ですか?または、時々一時停止したいものをスケジュールするためにcrontabを実際に使用するべきではありませんか?

グローバル変数を設定し、スクリプト内でチェックする実装を検討しています。しかし、私は最初にもっと適切な解決策を探すつもりでした。シンプルであるほど良い-私はスクリプトとルビーの両方に不慣れです。

4

1 に答える 1

2

私があなたなら、私のスクリプトは、グローバル変数で言ったように静的スイッチを調べますが、グローバル変数ではなくファイルの存在をテストします。これは私にはきれいに思えます。

もう1つの解決策は、crontabを使用せずに、スクリプトを1分ごとに呼び出すサービスを用意することです。このサービスは、/etc/init.dまたは(/etc/rc.dディストリビューションに応じて)の他のサービスと同様であり、他のサービスとしてstartstopおよびrestartコマンドを持ちます。

これらの2つのソリューションを混在させることができます。

  1. サービスはスイッチングファイルを作成または削除するだけであり、crontab行は常にアクティブです。
  2. または、サービスがこのようにcrontabを直接編集しますが、スクリプトを介してcrontabを編集することは好みません。また、記事で説明されている手法はアトミックではありません(スクリプトによる読み取りと書き込みの間にcrontabを変更すると、変更は失われます) 。

だからあなたの場所で私は1に行きます。

于 2012-07-21T22:40:17.323 に答える