laravel 5のキュー管理システムが大きなプロジェクト(約100.000ユーザー)に適しているかどうかを知る必要がありました。私はメッセージング(スパムではありません:)のような何かを毎日一度にしたいと思っています。
このジョブ(キューイング)に十分なredisはありますか?あるいは、特別なキューイング用のlib(beanstalkdのようなもの)を使う方が良いでしょうか?laravelキューシステムは大きなプロジェクトに適していますか?
答えて
は公平であるために、我々は以下の点を考慮すべき試してみて、この質問への合理的な答えを投稿する:
- コンテンツがに必要な
- システムリソースを配信する加入者数同時キューを実行する
100,000 x [データ]をRAMに格納する必要があるため、電子メールアドレスの長さを32文字に平均することができます(バイトes)。
100,000×32バイト=もちろん3.2メガバイト
、Laravelのキューシステムはオブジェクトなので、実際のメモリ使用量は、おそらく(Laravelキューに使用Redisのメモリ)高くなりますserialises、しかしを気には十分ではありません。
私が購読し、電子メールメッセージを送信するための一見成功したセットアップは、以下の上で実行することを過去に助言してきました:
- 2ギガバイトのRAM最小
- 2プロセッサ/コア
キューシステムLaravelを実行すると、サーバーに課金されることはありません。いつものように、要件に合わせて拡張してください。
(Laravelを使用)などのソフトウェアは、次で構成されます:
- Redisの
- スーパーバイザLaravelのキュー・ドライバーとしてのRedisを設定
。覚えているのはcomposer require predis/predis
です。
また、失敗したジョブを保存するために移行を作成する必要があります。スーパーバイザーがあなたのキューの設定に拾うことができるように/etc/supervisor/conf.d
にconfファイルを作成するスーパーバイザーがインストールされると
php artisan queue:failed-table
php artisan migrate
、::Laravelはデフォルトで構築されたものを持っている
touch /etc/supervisor/conf.d/myprojectqueue.conf
nano /etc/supervisor/conf.d/myprojectqueue.conf
そこには、環境に合わせた設定をレイアウトしますnt。次のデモをセットアップすると、4人のキューランナーが一度にあなたのキューで実行します:
[program:myprojectqueue]
command=php /path/to/project/artisan queue:listen --tries=1
directory=/path/to/project
stdout_logfile=/path/to/project/storage/logs/supervisord.log
redirect_stderr=true
autostart=true
autorestart=true
numprocs = 4
process_name = %(program_name)s%(process_num)s
confファイルを保存します。スーパーバイザの起動/再起動。詳細については
:
https://laravel.com/docs/master/queues
https://laravel.com/docs/master/queues#supervisor-configuration
ありがとう@ジャスティン。それは完全で魅力的な答えでした。私はlaravelのredisでキューイングしようとしました。そして、ララベルコードもチェックしました。私はlaravelがキュー自体を管理しており、redisは裏付けされたデータベースだと分かりました。キューが遅くなると思う。ちょうど私がメインプロジェクトとは別のキュー管理システムを実装したいのかどうかを知りたかっただけです。たとえば、Python(django)とセロリで実装していますか?またはcppとbeanstalkで? –
- 1. Ruby on Railsは大規模プロジェクトに適していますか?
- 2. Laravelプロジェクトが大きすぎます
- 3. 大きな(Android)プロジェクトで快適に仕事をするには?
- 4. laravelで大きなデータのhadleを最適化するには?
- 5. Mavenは小さなJavaプロジェクトに適していますか?
- 6. 大きなデータセットを送信しています。最適なアプローチ
- 7. Laravelプロジェクトのフォルダサイズが大きいですか?
- 8. キューシステム
- 9. RESTは大規模な3NFモデルに適しています
- 10. SQLiteは、かなり大きくて安全なデータストアとして適していますか?
- 11. 大きなクエリから適切なデータを引き出していないTableau
- 12. WordPressはこのプロジェクトに適していますか?
- 13. Pythonは高負荷のWebプロジェクトに適していますか?
- 14. TFSは小規模プロジェクトに適していますか?
- 15. CodeIgniterは大規模アプリケーションに適していますか?
- 16. は大規模アプリケーションに適していますか?
- 17. wp_insert_postを大きなベースに最適化しますか?
- 18. Pythonはプロトタイプ作成に適しており、大規模なデプロイメントには適していませんか?
- 19. D2009のジェネリックは大きなプロジェクトで使用できますか?
- 20. パンダは大きなデータセットに速度を適用します。
- 21. .NETキューシステム
- 22. Xamarinフォーム:Reactive UIはどのようなプロジェクトに適していますか?
- 23. 私のプロジェクトにはどんなパターンが適していますか?
- 24. 大規模プロジェクトでの適切なユニットテスト
- 25. ポリマー(2.0)は、大規模なMVC Webアプリケーションユーザーインターフェイスに適していますか?
- 26. web2pyは大規模な公開Webサイトに適していますか?
- 27. pthread大きなプロジェクト
- 28. リファクタリングwebproject:私のプロジェクトはますます大きくなっているので
- 29. Laravelをきれいにして新しいプロジェクトを焼く
- 30. Erlangはソフトリアルタイムアプリケーションには適していますが、ハードリアルタイムには適していないのはなぜですか?
なぜ否決?あなたはそれについて何も知らないのであれば答えることはできません。 –