問題タブ [laravel-queue]
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 - Laravel 統合テスト ジョブ
アプリの統合テストを実行しようとしています。私はそれらの仕事をしています:
- 開始ジョブ
- 準備ジョブ
- 実行ジョブ
StartJob は 1 つ以上の PrepareJob をディスパッチし、すべての PrepareJob は 1 つの PerformJob をディスパッチします。
これを追加
私のテストはエラーで失敗します
$this->expectsJobs を削除すると、すべてのテストに合格しますが、DB を特定の状態に変更したかどうかだけで、特定のジョブが実行されたと断言できません。
StartJobs.php
準備ジョブ.php
PerformJob.php
JobsTest.php
$this->expectsJob がディスパッチャーをモックしているのに対し、具体的なディスパッチャーの使用方法に何か関係があると思います。これに関連している可能性があります - https://github.com/laravel/lumen-framework/issues/207。これを解決する方法は何ですか?
laravel - Laravel、ジョブキューへの画像の埋め込みに関する問題
ジョブ キューに画像を埋め込む際に奇妙な問題があります。
開発にはWAMPを使用しています。私のプロジェクトのフォルダー構造は
C:\wamp\MyProject
で、パブリック ディレクトリは
C:\wamp\www\appにあります
これを実行すると正常に動作しますが、ドライバーを「同期」から「データベース」に変更し、メール機能を次のように更新すると、次のようになります。
上記を実行すると、ジョブ テーブルにデータ エントリが表示されます。しかし、コマンドを実行すると: php artisan queue:work
例外としてスローされます
[エラー例外]
fopen(assets/images/logo.png): ストリームを開けませんでした: そのようなファイルやディレクトリはありません
画像を削除すると、チャームとして機能します。ジョブキューを使用せずに画像を見つけてメールに埋め込むことができるのに、なぜ画像を見つけることができないのか疑問に思っています。希望どおりに動作するはずです。
これに対する任意の助けをいただければ幸いです。
laravel - Laravel 5.2は、新しいジョブを追加する前にキューに入れられたジョブをチェックします
私の目標 - 指定された引数でジョブが既にキューに入っているかどうかを確認します。たとえば、ユーザー ID 1 のジョブを追加したとします。その後、別の管理者がユーザー ID 1 の同じジョブを追加したいと考えています。これを防ぐにはどうすればよいですか?
laravel-5 - 指定したキューで Laravel ジョブを実行する方法
ユーザーにSMSを送信するジョブがあります。指定したキュー名でこのジョブを実行したい。たとえば、このジョブは「SMS」キューに追加されました。だから私はこれを行う方法を見つけましたが、いくつかのエラーが存在します。
ジョブ インスタンスを作成し、onQueue() 関数を使用してこれを行います。
私のジョブクラスは次のようになります:
したがって、コンソールに次のコマンドを入力します。
しかし、このジョブを実行すると、次のエラー メッセージが表示されます。
[InvalidArgumentException]
コマンド [App\Services\Auth\User\Password\SendGeneratedPasswordResetCode] のハンドラーが登録されていません
注: もう 1 つの方法は、EventServiceProvider のlistenプロパティにイベントを追加して、イベントを発生させることです。ただし、キュー名を指定すると機能しません。
laravel - マルチユーザー環境向けの Laravel キュー
私はLaravel 5.1を使用しており、処理に約2分かかるタスクがあり、このタスクは特にレポートを生成しています...
ここで、ユーザーの入力を取得した同じページでユーザーを 2 分間待たせることはできないことは明らかです。代わりに、このタスクをバックグラウンドで処理し、タスクの完了について後でユーザーに通知する必要があります...
したがって、これを達成するために、Laravel はQueues
バックグラウンドでタスクを実行する機能を提供します (私が間違って理解していなければ)、マルチユーザー環境、つまり複数のユーザーがレポートの生成を要求する場合 (4 人のユーザーがいるとします)、という名前の機能はQueues
、タスクが次々に実行されることを意味しますか?
タスクを次々と完了する場合Queues
、ユーザーの要求に応じてバックグラウンドで即座に処理され、後でタスクが完了したときにユーザーに通知を受け取ることができるタスクはありますか??
multithreading - laravelジョブの複数のスレッドを処理するには?
私は、アプリケーションの顧客が他のさまざまな API を介してアプリケーションにデータをインポートするための laravel プロジェクトに取り組んでいます。
インポートする必要があるデータの種類ごとにジョブを作成することを考えています。しかし、それは多くの顧客がキュー ワーカーによって処理される必要があるジョブを発行することを意味します。つまり、顧客が特定の種類のデータをインポートする 1 つのジョブをインポートするジョブを発行した場合、別の顧客もジョブを発行した場合です。同じ種類のデータをインポートするには、最初の顧客のジョブが完了するのを待たなければならず、キューが機能することによって 2 番目の顧客のジョブが開始されます。しかし、100 人の顧客がお互いに待っているわけにはいきません。
では、この種の輸入の実行可能な解決策は何でしょうか? ハッシュ化されたキューにジョブを配置してから、それらのキューを呼び出す必要がありますか? または、これを処理するより良い方法があります。データが顧客によってさまざまな API から非同期的にインポートされているようなアプリケーションで作業したことのある人はいますか? そして、それをうまく処理する方法。
laravel - 異なるコードベースから laravel push キューされたジョブ
他のコードベースからジョブをトリガーしようとしています
MyCommand クラス:
そして MyJob クラス:
次のような queue:listen コマンドを使用してキューをリッスンしています
コマンドを実行すると (一部のコードベース内で) command:my このようなペイロードが正常に処理されます。
今私の問題は、このジョブまたはコマンドを他のコードベースからトリガーする必要があることです。何か方法はありますか?
(commands/workers プロジェクト) のドメイン名がないか、コマンドをトリガーするルートを 1 つ作成してみてください。
php - php artisan queue:workがmongodbとlaravel 5.2で動作しない
laravel 5.2.0 とhttps://github.com/jenssegers/laravel-mongodbをインストールし、キュー経由でメールを送信したいと考えています。ジョブテーブルを正常に作成しましたが、php artisan queue:workコマンドを実行すると、次のエラーがスローされます -
PHP 致命的なエラー: 行 576 の /var/www/html/admin/setupl/vendor/laravel/framework/src/Illuminate/Database/Connection.php の null でメンバー関数 beginTransaction() を呼び出す
データベース接続を確認しました。コマンドラインでの完全なログは次のとおりです-
私はそれを解決するために何時間も費やしましたが、まだ機能していません。
編集- 「MongoDB にはトランザクションがないため、Laravel が 1 つを開始しようとすると例外がスローされる」と示唆されているように、https://github.com/jenssegers/laravel-mongodb/pull/871で、beginTransaction と commit のコードにコメントを付けました。 () と null を返します。エラーはなくなりましたが、コマンドはまだ機能していません。
と
php - Laravelのイベントリスナー内でキューを使用することは可能ですか?
Laravelのイベントリスナー内でキューを使用することは可能ですか?
リスナーを持つイベントをQuotesController
発生させるコントローラーがあるとしましょう。そして、そのリスナーから名前が付けられたキューをディスパッチしたいと思います。QuoteCreated
SendNotification
EmailToUser
もちろん、コントローラーからキューを直接ディスパッチできますが、リスナーからディスパッチできますか?