問題タブ [delayed-job]
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 - 低い CPU 優先度でバックグラウンドでタスクを実行する
私の CMS には、ユーザーが画像でいっぱいの zip ファイルをアップロードできる機能があり、サーバーはそれらを抽出して、それぞれを画像ギャラリーに挿入します。私は、これが CPU をかなり酷使し、他のリクエストの速度を低下させることに気付きました。
delayed_job プラグインを使用して、各画像の追加をバックグラウンドに委任することを考えていますが、そのプロセスの CPU 優先度を低くして、サーバーが停止しないようにしたいと考えています。
エクササイズの遅延部分にはかなり自信がありますが、抑制部分で行き詰まっています。メソッド呼び出しの優先度を下げるルビーの方法はありますか?
CPU チューイングを引き起こすのは画像のサイズ変更です。
どんなアイデアも歓迎します:)
ruby-on-rails - delay_jobを使用したログ形式
私はperformメソッド内からlog/delayed_job.logに書き込んでいます:
log / delayd_job.logに、delayed_jobによってログに記録された他のメッセージと比較して、エラーメッセージが出力されますが、フォーマット(日付/時刻が前に付けられます)はありません。
delayd_jobのロガーを使用してこの同様の形式にする方法はありますか?または、日付の前に付ける独自のログメソッドを作成する必要がありますか?
ruby-on-rails - Rails アプリでは、電子メールをバックグラウンド ジョブとして送信するか、同期的に送信する必要がありますか?
新しい Rails アプリのリリースが近づいていますが、これまでのところ関心が非常に高いようで、ボトルネックがどこにあるのか少し心配です。1つは、サインアップ時およびその他の状況でのシステム電子メールのようです. これは正しいです?
ユーザーへの個々の電子メールをバックグラウンドで非同期に送信する必要がありますか? もしそうなら、最善の解決策は何ですか?
私はいくつかの解決策を見てきましたが、決定的なものを見つけることができないようです。
queue - delayed_job を起動時に 1 回限りのコードを実行し、すべてのジョブで使用する方法はありますか?
XMPPサーバーに情報をプッシュするdelayed_jobタスクがあります。理想的には、送信するデータがあるたびに新しい接続を作成するのではなく、XMPP への接続を一度作成してから、常にデータをプッシュします。
ワーカーの起動時に一種の「セットアップ」メソッドを実行するためのdelayed_jobに何らかの機能はありますか? 各ワーカーが独自のセットアップ メソッドを実行してもかまいません。XMPPサーバーに毎回ゼロから接続するすべてのジョブ(1日あたり数千)を望んでいません。
助けてくれてありがとう!
php - PHP と JavaScript で一時的に取り消し可能な操作を実装する方法は?
ユーザーが操作を行った後、短時間で元に戻せる操作を実装したいと考えています。つまり、ユーザーが写真サイトで写真に賛成票を投じた場合、30 秒以内に投票を取り消すことができます。これは、StackOverflow での投票がどのように機能しているかに似ています。投票を短時間取り消すことができます。
どのように実装すればよいですか?パフォーマンス上の理由から、遅延がタイムアウトする前に投票をデータベースにコミットするべきではないと思います。また、遅延がタイムアウトする前にユーザーが Web サイトを変更すると投票が失われるため、JavaScript でこれを行うのは困難です。Cookie で実行できるかもしれませんし、PHP セッションで実行するのが最善の解決策かもしれませんが、遅延後に操作をコミットするにはどうすればよいでしょうか?
ruby-on-rails - レールのステータスを持つバックグラウンド ジョブ
おい。ファイルをアップロードして解析したいと思います。解析には最大 10 分かかることがあるため、delayed_job プラグインをインストールし、send_later 関数を介して解析関数を呼び出しました。これは AJAX アプリです。
アップロードを開始する AJAX ボタンを押した後、ソースがデータベースにインポートされると想像してください。プロセス中に進行状況バーまたはメッセージ (インポート中...) を表示したいのですが、完了するとタスクのステータスが完了に変わります。
私の質問は次のとおりです。プロセスのステータスを確認する最良の方法は何ですか。あなたならどうしますか?私の考えは、データベースを調べて正しいステータスを提供する別のコントローラーアクション「ステータス」を用意することです。
ruby-on-rails - Rails アプリケーション内からデータベース テーブルの外部変更を監視する
Rails アプリケーションにいくつかの非 Rails モデル テーブルを統合しています。すべてが非常にうまく機能します。モデルをセットアップする方法は次のとおりです。
このようにChange
して、既存のすべてのレコードにモデルを使用できますfind
。
レコードがテーブルに追加されたときに、何らかの通知を実行したいと思います。モデルは経由Change.new
で作成されないため、Change.save
使用ActiveRecord::Observer
はオプションではありません。
新しいレコードが追加されるたびに、Rails コードの一部を実行する方法はありますか? 私は見ましdelayed_job
たが、それを設定する方法を理解できませんでした。ジョブが最後に実行されてから作成されたすべての行を選択し、各行のそれぞれの Rails コードを呼び出す cron ジョブを中心に展開すると思います。
更新現在 Java のWhenを見ていると、「cron 部分から Rails コードを実行する」を解決できるようです。
ruby-on-rails - Rails 遅延ジョブ & ライブラリ クラス
次のように遅延ジョブを呼び出すライブラリ クラス (lib/Mixpanel) があります。
問題は、rake jobs:work: を実行すると、次のエラーが発生することです。
理由はありますか?
ruby-on-rails - Delayed_Job - site5 サーバー上
私は現在、site5 サーバーを使用しており、ほぼ常に実行したいと考え
rake jobs:work
ています。現在、サーバーにログインしていないとジョブを送信できません。誰かがこれで私を助けてくれることを願っています。ar_mailer
と宝石で多くの問題がありましたwhenever
...しかし、私のレールアプリ内で完全に機能する約5つの宝石があります。
誰かがこれの解決策に光を当てることができますか? 大変感謝しています。(delayed_job をプラグインとしてインストール)
ruby-on-rails - アプリケーション/サーバーの再起動時に遅延ジョブを開始または確実に実行する
バックグラウンドでジョブを実行するには、delayed_job (またはその他のバックグラウンド ジョブ プロセッサ) を使用する必要がありますが、サーバーのブート スクリプト/ブート レベルを変更することはできません。これは、プロバイダーがサーバーを再起動した場合、デーモンが利用可能であることが保証されないことを意味します (デーモンは、デプロイメントごとに 1 回だけ実行される capistrano レシピによって開始されるため)。
現在のところ、delayed_job デーモンが常に実行されていることを確認するために考えられる最善の方法は、デーモンが実行されているかどうかを確認するイニシャライザを Rails アプリケーションに追加することです。デーモンが実行されていない場合、イニシャライザはデーモンを開始します。それ以外の場合はそのままになります。
したがって、問題は、Delayed_Job デーモンがスクリプト内から実行されていることをどのように検出するかということです。(デーモンをかなり簡単に起動できるはずですが、デーモンが既にアクティブになっているかどうかを検出する方法がわかりません)。
誰にもアイデアはありますか?
よろしく、バーニー
以下の回答に基づいて、これが私が思いついたものです。config/initializers に入れるだけで準備完了です: