問題タブ [que]
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 - Que と呼ばれるバックグラウンド ジョブ マネージャー gem を使用してジョブを実行するとエラーが発生する
メールを配信する必要がある Rails 4.2.0 アプリケーションを作成しています。Que
バックグラウンドジョブを管理するための宝石を勧められました。インストールと使用法はここにリストされています。
application.rb
また、次の行で指定しました。
私の仕事は次のようになりますsend_welcome_message.rb
。
コマンドを実行するrails s
と、コンソールに次のメッセージが表示されます。
そして、コントローラーでこのようにジョブをキューに入れると
SendWelcomeEmail.enqueue 20, priority: 100
ページを更新すると、常に次のエラーが表示されます(メッセージを送信できるにもかかわらず、 que を使用せずに同期する方法です):
rails console
そして、2 番目のターミナルを開いてそこに入るとQue.worker_states
(ここに書かれており、システム内のすべてのワーカーに関する情報が返されるはずです) が表示されます[]
。
ワーカーが生成されていないと思います。私は正しいですか?そして、それを修正する方法は?
アップデート
que ログにエラーが見つかりました:
8 行目は次のとおりです。
解決
今、その作業。アダプター構成を削除しましたapplication.rb
。
SendWelcomeEmail.enqueue 20, priority: 100
書きました
これで動作します。2 番目のバリアントで面白いことに、同じ値が関数に渡されます。それでもエラーメッセージには、run
引数が1つしか取得されていないことが示されています - 20
。
ruby-on-rails - Que ジョブの実行方法
que gemをインストールしました。アクティブなジョブでスケジュールしているタスクを実行したいのですが、これまでに追加しましたconfig/application.rb
ジョブをデータベースに正しく保存しますが、実行しようとすると
起動しますが、ジョブが機能せずrun_at
、フィールドを確認し、env を RAIls_ENV=development に設定して実行しようとしました。で試した
とエラーが生成されます
ruby-on-rails-4 - Que を heroku ワーカーとして使用する
https://github.com/chanks/queを使用しています
que
heroku での設定に問題があります。私はherokuでセットアップweb
とプロセスを行っており、これらの構成を持っています:worker
config/initializers/que.rb
Procfile
以前は、web
heroku にプロセスが1 つしかなく、Que.mode = :async
que
同じweb
プロセス内で正常に実行されていました。
worker
別のプロセスをセットアップしたので、使用Que.mode = :off
してみましたが、キューログが表示されず、失敗したジョブがすべて表示されque-web
ます。
Que.mode
不足しているものと、私の構成に適しているものを教えてください。
注web
:私は別々に保管してworker
処理したいので、自分のジョブworker
の実行のみを担当する必要があります。que
ruby-on-rails - Rails と Que ジョブ
以前は sidekiq を使用していましたが、今は que に移行してすべてを Postgresql に保存することにしました。redis の高性能機能は必要ないため、アプリケーションの外部コンポーネントへの依存を減らしたいと考えました。gem 'que' を追加してインストールし、application.rb に次のように記述しました。
ActiveJob::Base から継承したすべてのジョブ
しかし、sidekiq のように別のスレッドでバックグラウンド タスクを実行する方法がわかりません (rake コマンド rake sidekiq:start で実行します)。
ruby-on-rails - newrelic で Que ジョブをトレースするには?
スクリプトを cron ジョブで実行したいと考えています。このスクリプトは、大変な作業を行う複数の Que ジョブを作成します。new relic で各ジョブのアクティビティを追跡するにはどうすればよいですか?
cronjobs をトレースする方法に関するこの投稿https://blog.newrelic.com/2012/05/30/using-new-relic-to-monitor-ruby-background-tasks/を読みましたが、Que ジョブが管理されているため独自のワーカー (私は puma を使用しています) では、トレースされません。
これは、それを実行しようとするサンプル スクリプトです (ただし、何もトレースしません)。
ありがとうございました
ruby - que は大量のデータを処理するジョブを書くのに安全ですか?
Sequel gem でQueを使用しています。大量のデータを処理する必要があるジョブを安全に作成できるかどうかに関心があります。1 つのデータベース トランザクションで安全に配置できる量よりも多くのデータ (8 万行以上のインポート/エクスポートなど) を処理する必要があります。定期的に (私は現在、1,000 件のレコード トランザクション バッチでレコードを処理しています)。
私が懸念しているのは、gem/postgres がバックグラウンド ワーカーの実行の周りである種の暗黙的なトランザクションを実行し、ロールバック セグメントが手に負えなくなり、DB がスワッピー地獄でクラッシュする可能性がある場合です。
私がこれを求めている理由は、ドキュメントの次の行です。
安全性 - Ruby プロセスが停止した場合、そのプロセスが動作しているジョブが失われたり、ロックされた状態やあいまいな状態のままになったりすることはありません。他のワーカーがすぐに利用できるようになります。
私と一緒に、これは「トランザクションにネストされた」と叫びます。私の懸念が本当なら、80k レコードを同じロールバック セグメントに静かにラップする可能性があります。ラップトップで試すこともできますが、私のラップトップは本番 VM よりもはるかに強力であるため、開発環境で正常に動作し、デプロイで見事にクラッシュするのではないかと心配しています。
同じような Que の経験を持つ人が助けてくれますか?
リンク: GH に関する同じ質問
c++ - C++ スタック添え字に値を追加するには、配列またはポインターの型と警告が必要です
C++ でのプログラミングは初めてです。また、スタックの実装も初めてです。私の目的は、テンプレート スタックを使用して RPN Calculator を作成することです。組み込みのスタック クラスを使用できません。
私はこれまでのところすべてを持っていますが、今は立ち往生しています。この問題を解決する方法がわかりません。現在、次のエラーが発生しています。
これは私のスタッククラスです:
これは私のメインクラスです:
問題は、テンプレート クラスpush()
のメソッドにあるようです。RPNCalculator
javascript - 非同期関数呼び出しについて
非同期 JavaScript について学び始めたばかりなので、これがばかげた質問かどうかはわかりませんが、直接の答えは見つかりませんでした。
私が見た非同期 JS の例では、非同期ロジックは常に同期ロジックの後に、つまり最後に呼び出されます。何かのようなもの:
これは次のものと同等ではありませんか:
非同期呼び出しは常に同期の後に行われるように見えるため、非同期呼び出しはメインスレッドのスタックの一番上にある関数呼び出しと同じではありませんか?
これについて助けてくれてありがとう!