問題タブ [delayed-execution]
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.
php - PHP スリープ遅延
PHP では、ループの各反復に数秒の遅延を設定したいと考えています。
これどうやってするの?
ruby-on-rails - Ruby での処理ジョブの遅延: どれだけ私のパスをブロックしていないか
私はまだ遅延ジョブを処理ジョブキューとして使用しているこのプロジェクトを持っています。私は最近、いくつかの疑問を抱かせているエッジケースを見つけました: 私はこの AR (ちなみに MySQL を使用しています) オブジェクトを持っており、更新時に has_many アソシエーションのすべての要素にメッセージを送信します。そのためには、この関連付けのすべての要素をインスタンス化し、それらの要素に対するメッセージを呼び出す必要があります。彼ら一人一人へのこのメッセージの呼び出しを遅らせるのに十分なほど公平に思えました。
現在、関連付けはかなり大きくなりました。エッジケースでは、その関連付けに属する 40000 個のオブジェクトがあります。これによるメッセージ送信には、40000 の遅延ジョブ ジョブの (同期) 作成が含まれます。これらはコミット後ではなく更新後のコールバック内で発生するため、コンテキスト切り替えを利用せずに同じ接続を (ab) 使用しています。短いバージョンでは、同じ接続に 1 つの Update ステートメントと 40000 の挿入のパイプがあります。そのため、この更新は実稼働環境でかなりの時間を飲み込んでいます。
現在、これには多くの方法があります: コールバックをコミット後のものに変更し、40000 ジョブを作成する 1 つの (同期) 遅延ジョブを作成します (1 つのジョブで 40000 (AR) オブジェクトを処理したくありません。今の 40000 は明日 120000 になり、それはメモリアルマゲドンです) など...
しかし、私が本当に考えているのは、遅延処理キューを resque または sidekiq に切り替えることです。redis を使用しているため、書き込みパフォーマンスがはるかに優れています。MySQL ではなく何かを使用しているため、接続が互いにブロックされません。私の唯一の問題は、redis に一度に 40000 の書き込みを行うと、どのくらいの費用がかかるかということです。そして、これらのオプションのいずれかが最初にジョブをメモリに保存し、クライアントへの応答をブロックせず、遅ればせながらそれらを redis に保存しますか? だから、私の本当の質問は、このような極端なケースで、この遅延はどのくらい私を遅らせるのでしょうか?
ruby-on-rails - Sidekiq Delay Mailer がメールを送信しない
こんにちは、
Sidekiq/Redis を使用してバックグラウンドでメールを送信しようとしています。次の点に注意してください。
使用
devise-async
していますが、問題なく動作しますActionMailer
設定は良好です メーラーの
呼び出しを に変更すると、メールは正常にUserMailer.contact_email(name).deliver!
送信されます。機能していないのはUserMailer.delay.contact_email(name)
ログでジョブが進行していることを確認できます。メールが通過していると想定することさえできます。機能していないことに気付いたのは、自分自身に送信したときだけでした。
Apr 08 18:36:58 app01-production sidekiq: 2013-04-09T00:36:58Z 31155 TID-1jdwoq Sidekiq::Extensions::DelayedClass JID-6143790ebbf6e8bbc4a7bb85 INFO: done: 4.923 sec
明らかに、メール オブジェクトで DelayedClass 拡張を呼び出していますが、うまくいきません。それが機能することを考えるとdevise-async
、間違った構文または何かを使用しているのではないかと思います?`
ありがとう!!
javascript - JavaScript: オブジェクトの初期化後に内部変数を初期化する
更新:元の質問に誤った仮定があったため、質問を書き直しました(未定義と思われる変数をすでに初期化したコンソールでコードを実行していました)。
意味あり:
しかし、次の例でエラーが発生しないのはなぜでしょうか? また、2 行目が最初の行の前に実行されている場合、なぜ obj.whichScope が "After" に解決されないのでしょうか?
前の例の "var a" が obj が初期化される前に実行される場合、'a = "After";' の任意の部分を実行します。obj が初期化される前にも実行されますか?
whichScope が「a」を返す関数を参照する場合、最後の例では「After」に解決されます。
c# - メソッドの最後までコード実行を強制する
私はクライアントサーバーマルチスレッドアプリケーションに取り組んでいます:
通信の進行状況は次のとおりです。
- サーバーはソケットでリッスンします
- クライアントが接続し、リクエストをサーバーに送信します
- 各リクエストは 0x04 で終了
- サーバーは、着信要求よりも遅い操作で各要求を処理する必要があります
「ProcessClient」メソッドに問題があり、短時間に 2 つのリクエストが発生し、2 番目のリクエストが処理されるため、メソッドの最後まで最初のリクエストを処理できません。foreach ループの後に問題が発生します。
メソッドは最後まで実行されず、次のコード スニペットでクライアントに応答を送信しません。
2 番目のリクエストは「ProcessClient」メソッドで発生するためです。
この問題を解決する方法はありますか。私は成功せずに多くの解決策を探していました。
コード全体は以下のとおりです。
heroku - Heroku、sucker_punch の明らかなサイレント障害
私のアプリは unicorn を搭載した Heroku で実行され、sucker_punchを使用して、Web UI を遅くすることなく、バックグラウンドで少量のメールを送信します。これは数週間かなりうまく機能しています。
unicorn の設定を Heroku 推奨の設定に変更しました。推奨構成には、ユニコーン プロセス数のオプションが含まれており、プロセス数を 2 から 3 に増やしました。
どうやらそれは多すぎたようです。sucker_punch ジョブの実行が停止しました。キューに入れられたことを示すログ メッセージと、処理を開始したことを示すメッセージがあります。ログはそれらがキューに入れられていることを示していますが、処理は開始されません。
私の理論では、ユニコーンを 2 つから 3 つに増やして記憶を超えたということです。
問題を示すメッセージはどこにも見つかりませんでした。
Q1: どこかにエラー メッセージが表示されますか? 「sucker_punch を開始しようとしています -- おっと、メモリが足りません」のようなものですか?
Q2: 今後、このような障害が発生した場合の通知方法について何か提案があれば教えてください。
ありがとう。
workflow-foundation-4 - Workflow Foundation - サーバー再起動時の保留タイマー
遅延アクティビティが持続するようにワークフローを構築しており、遅延が期限切れになった後、通知が送信されます。ワークフローはワークフロー サービスを介して公開されます。
これは、サーバーの再起動が発生した場合、またはサーバーが 1 日か 2 日メンテナンスのためにダウンし、タイマーがすでに期限切れになっている場合を除いて、完全に機能します。その場合、特定のワークフローに関連する最初の要求が WCF エンドポイントに到着するまで、通知は送信されません。
アプリケーション プールは既に alwaysRunning に設定されていることに言及する必要があります。
既に実行されているはずの保留中のタイマーをチェックするために、IIS/AppFabric に追加する必要があるものは他にありますか?
Workflow Foundation 4.5 を使用しています。