問題タブ [whenever]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby-on-rails - gemが1台のマシンにのみcronjobを持っているときはいつでも?
約12台のサーバーが大規模に展開されています。Whenever gemを使用したいのですが、cronジョブを実行するマシンを指定する方法がわかりません。これらのジョブは、バックグラウンドジョブを実行するサーバーでのみ実行する必要があります。
これを指定する方法はありますか?
ruby-on-rails-3 - cronジョブがOSXで実行されないのはなぜですか(gemによって構成されます)?
私はcronジョブを設定し、素晴らしいいつでもgemを使用しています。
私はcronジョブを次のように設定しました:
crontabファイルは正常に見えます。次のように表示されます。
ランナーを実行すると正常に動作しますが、cronジョブが動作していないようです(ログが作成されていないこともわかります)。
私は何が欠けていますか?
(私はMac OS X、10.6.6で作業しています)
アップデート
私は問題を特定したと思います:パス名にスペースが含まれていますが、これは常にgemによって正しく処理されなかったため、crontabが正しく入力されなかったため(必要なバックスラッシュが欠落しています)、cronジョブが実行されますが、コマンドのパス間違っている。
ruby-on-rails - Rails cron with when
「いつでも」が機能しない理由がわかりません
スケジュール.rb
Ping.rb
crontab -l
rails runner "Ping.check_pings" ==> コマンドラインで動作
「rails s」で実行しているプロジェクトで試してみましたが、何が間違っていますか?
ruby-on-rails - Rails 3 ubuntuのcrontabファイルの常にPATH
私はいつでもgem を rails 3 で使用しています。実稼働サーバー (ubuntu) では、ランナー タスクが実行されません。この github ticketに記載されているように、:set job_template
get に設定してみました。しかし、それは問題を解決しません。-l -i
この特定の製品 ubuntu の問題は、ルビ パスが に存在しないことですecho $PATH
。
ruby パスは /var/rails/myapp/shared/bundle/ruby/1.8/bin です
したがって、手動で crontab ファイルを編集して crontab ファイルに追加 PATH=/var/rails/myapp/shared/bundle/ruby/1.8/bin:
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
すると、ランナー タスクは正しく実行されます。
ただし、デプロイを行うたびに、crontab ファイルを手動で編集して PATH ステートメントを追加する必要があります。
この PATH 行を crontab ファイルにいつでも追加して、展開のたびに手動でこれを行う必要がないようにする方法はありますか?
ありがとう
ruby - ルビーを見つけることができるように、cronでいつでもパスを設定します
私のルビーは /usr/local/bin にあります。いつでもそれを見つけることができず、cron ファイルの先頭に PATH を設定しても機能しません。なぜなら、いつでも新しい bash インスタンス内でコマンドを実行しているためだと思います。
ruby バイナリがどこにあるかをいつでも確認するにはどうすればよいですか? /usr/bin からシンボリック リンクを作成するのは面倒に思えますが、それが唯一の選択肢かもしれません。
この質問は解決策として schedule.rb で提供env :PATH, "..."
されていますが、(a) ドキュメントのどこにもその機能のドキュメントが見つかりません (b) 質問者の問題を解決していないようです (残念ながら、自明ではありません私が試してみるまでの所要時間)。
更新は実際にはこのページの下部にあります。今試してみます。
より詳しい情報
- cronコマンドはいつでも生成されるため、変更できません
- を使用して新しい bash シェルを作成すると
bash -l
、/usr/bin/env で ruby が問題なく検出されることを確認しました - そのユーザーのコマンドラインから、/ bin/bashで始まる正確なコマンドをcronで試したところ、うまくいきました。
だから、これは非常に神秘的です...
ruby-on-rails - いつでもgemでシーケンシャルタスクをスケジュールする
Railsアプリケーションのタスクをスケジュールするためにいつでも使用しています。
私には次のようなタスクがあります:
私のポイントは、crontabに書き込むと、-wを指定すると、同時に実行される2つの独立したタスクが生成されることがわかります。問題は、どちらも論理的にシーケンスであるということです。つまり、コマンド「do_this」がすでに正常に実行された場合にのみ、rakeタスク「do_that」を実行する必要があります。
コマンド"do_this"&& rake "do_that"のように両方に接続しようとしましたが、構文エラーが発生しました。
いつでもタスク間にこの依存関係を作成するためのトリックはありますか?
crontabはジョブを同時に、並行して実行しますか、それともキューで同時にスケジュールされたN個のタスクを処理しますか?
ruby-on-rails - コントローラーメソッドの crontab を作成するには?
- リソース「アイテム」
- コントローラー「アイテム」-> メソッド「check_item」
- 「アイテム」を表示 -> link_to check_item
ユーザーが期間「N [秒または分または時間]」と新しい「link_to」を入力するための入力フォームを作成する必要があります。これにより、N 間隔で check_item の新しい cronjob が作成されます。さらに、「スケジュールされたすべてのジョブを停止する」ボタンと「スケジュールされたすべてのジョブを開始する」ボタンを作成する必要があります。
Linux crontab を使いたいので、gem "whenever"(https://github.com/javan/whenever) を見つけました。ユーザーがビューに入力する変数、アイテムコントローラーのメソッドcheck_item、およびmyapp/config/schedule.rb(everyoneizeによって作成)を接続する方法がわかりません。
whenever - cronjob処理のためにレールでgemを使用するときはいつですか?
cronjob 処理のために rails 3 でいつでも gem を使用するにはどうすればよいですか? 5 分ごとに実行する必要があるレーキ タスクが 1 つあります。これを行うにはどうすればよいですか?
ruby-on-rails - Rails:レーキタスクを最適化するときはいつでも +delay_job?
私は一日を通していつでもrake タスクを呼び出しますが、各タスクは新しい Rails 環境を起動します。ジョブごとに Rails を再起動せずに、1 日を通してタスクを実行するにはどうすればよいですか?
これが私が思いついたものです。これについてフィードバックをいただけませんか?
各レーキ タスクをリファクタリングして、代わりに適切なモデル内のメソッドにします。
delayed_job gem を使用して低い優先度を割り当て、これらのメソッドが非同期で実行されるようにします。
rake タスクを呼び出す代わりに、各Model.methodを呼び出すように指示する
この解決策は理にかなっていますか? ジョブごとに新しい Rails 環境を立ち上げるのを避けるのに役立ちますか? ..またはこれを行うためのより良い方法はありますか?
--
ランニングレール3