2

バックグラウンドで 5 時間ごとに定期的に実行したいかなり軽いスクリプトがあります。このスクリプトは、いくつかの異なる Web サイトを実行し、それらをスキャンして新しい素材を探し、.mp3 ファイルを取得するか、コンテンツに基づいて youtube の曲を高く評価します。このプログラムで達成したいことがいくつかありますが、達成する方法がわからないことがあります。

  • プログラムを 5 時間ごとに実行します -- 私はシステムレベルのタイミング操作に慣れていません。
  • プログラムをバックグラウンドで効率的に実行します。ユーザーが知らないうちにこれらの「更新」が行われるようにします。
  • 起動時にプログラムをアクティブにします-これをユーザーとして設定する方法は知っていますが、可能であれば、そのような構成をpythonファイルに追加する方法がわかりません。これは単純な .py スクリプトになることに注意してください。実行可能ファイルにコンパイルするわけではありません。

このプログラムは、主に OSX およびその他の Unix ベースのシステムを念頭に置いて設計されています。これらの目標のいくつかを達成するためのアドバイスはありますか?

4

2 に答える 2

4

スクリプトを常に実行する必要がなく、そうでもないように思われる場合は、cron ジョブを設定することをお勧めします。

典型的な Linux ボックスでは、次のように編集できますcrontab file

$ crontab -e

これにより、標準のエディターで crontab が開き、完了後に crontab ファイルがインストールされます (つまり、保存します)。

典型的な crontab コマンドは次のようになります。

# m h  dom mon dow   command
 15  0   *   *   *    /bin/bash /home/yourself/bin/dump_my_tables.sh

この行はdump_my_tables.sh毎日 00:15 に実行されます。スクリプトには、次のようなものが必要です。

0  */5  *  *  *   /usr/bin/python /home/yourself/bin/scrape_the_web.py

注意:

  • Time はマシンのローカル時間です (!)
  • 一部のcronバージョンは構文を受け入れません*/5。スクリプトをスケジュールする時間を手動で指定する必要があります。0,5,10,15,20
  • 出力をリダイレクトしたいかもしれませんが、それはこの回答の範囲外です
于 2013-01-30T21:36:32.360 に答える
2

プログラムを 5 時間ごとに実行します -- 私はシステムレベルのタイミング操作に慣れていません。

nix cron は、これを達成するためのデフォルトのソリューションです

プログラムをバックグラウンドで効率的に実行します。ユーザーが知らないうちにこれらの「更新」が行われるようにします。

cron を使用すると、プログラムはサーバーのバックグラウンドで実行されます。ユーザーはそれによって悪影響を受けるべきではありません。ユーザーがスクレイピングした mp3 を表示するページをロードした場合。次に、スクリプトの実行中/データベースへのデータの保存中に、ユーザーが更新を押すと、新しい mp3 が表示される可能性があります。

起動時にプログラムをアクティブにします-これをユーザーとして設定する方法は知っていますが、可能であれば、そのような構成をpythonファイルに追加する方法がわかりません。これは単純な .py スクリプトになることに注意してください。実行可能ファイルにコンパイルするつもりはありません。

再起動時にcronエントリが保持されると確信しています(100%ではありません)。cron起動時にデーモンが開始されていることを確認してください

于 2013-01-30T21:41:10.403 に答える