1

そこで、Twitter ボットを Heroku にプッシュし、Heroku スケジューラ アドオンを使用して 1 時間ごとに 30 分ごとに実行するように設定しました。ただし、何らかの理由で代わりに 10 分ごとに実行されます。これはスケジューラーのバグですか? これは、スケジューラが正常に実行され、10 分後に再度実行が試みられたときのログの抜粋です。

2013-01-30T19:30:20+00:00 heroku[scheduler.4875]: Starting process with command `python ff7ebooks.py`
2013-01-30T19:30:21+00:00 heroku[scheduler.4875]: State changed from starting to up
2013-01-30T19:30:24+00:00 heroku[scheduler.4875]: Process exited with status 0
2013-01-30T19:30:24+00:00 heroku[scheduler.4875]: State changed from up to complete
2013-01-30T19:34:34+00:00 heroku[web.1]: State changed from crashed to starting
2013-01-30T19:34:42+00:00 heroku[web.1]: Starting process with command `python ff7ebooks.py`
2013-01-30T19:34:44+00:00 heroku[web.1]: Process exited with status 0
2013-01-30T19:34:44+00:00 heroku[web.1]: State changed from starting to crashed

この問題の診断に役立つ情報を誰でも提供できます。[web.1] ログ メッセージは数分ごとに繰り返されます。フォロワーにスパムを送信したくありません。

4

3 に答える 3

6

他の誰かがこの問題を抱えている場合、私はそれを理解しました。スケジューラを有効にしてから、0 dyno を割り当てました。これにより、実行がスケジュールされている場合にのみ Heroku dyno が割り当てられます。なんらかの理由で、プロセスが継続的に実行されていたため (私の推測では)、Twitter はソケットへの接続を数分ごとに許可していたため、散発的なツイートが行われていました。

于 2013-01-31T02:30:15.710 に答える
0

1回限りの実行スクリプト(開始してから終了し、実行を継続しないpythonスクリプトなど)で私を助けてくれた男の解決策をあなたと共有します。

ご不明な点がございましたら、お気軽にお問い合わせください。 --> andreabalbo.com

こんにちはアンドレア

また、Procfile にランダムなプロセス タイプを作成しました。

tmp-process-type: コマンド: テスト

Heroku ダッシュボードでプロセス タイプをオンにしませんでした。Advanced Scheduler をインストールした後、毎分実行されるコマンド「tmp-process-type」でトリガーを作成しました。ログを見ると、1 分ごとにプロセスが「command:test」で開始され、Procfile のプロセス タイプが機能していることを確認できます。次に、Heroku ダッシュボードでプロセス タイプをオンに切り替えました。これは私のログにすぐに現れました:

tmp-process-type@1:Free web@0:Free by user にスケーリング ...

これは、トグルした後、Heroku が通常の dyno をスピンアップし、それを維持しようとするためです。スクリプトは終了するタスクであるため、dyno が停止し、Heroku が自動的に再起動し、タスクが複数回実行されます。

要約すると、次の手順で問題を解決できます。 1. プロセス タイプをオフに切り替えます (ただし、Procfile には残します)。 process-type" 4. ログを見て、奇妙なものが表示されていないかどうかを確認します

敬具、オスカー

于 2019-10-14T17:38:25.157 に答える