认证高级PHP讲师
マシンを追加...
総当りである限り、必ずこの時間間隔が存在します。 MySQL にはデータ監視メカニズムがないようですフロントエンドに redis または mq のレイヤーを追加できます1. フロントエンドにタスクを追加します2. タスクを redis/mq に書き込みます。 mysql に書き込みます3. バックエンドは redis/mq を監視し、タスクの実行を取得し、実行完了後に mysql を更新します
言うまでもなく、mq は監視がすべてですRedis はそのために pubsub を使用しますredis pubsub の使い方は非常に簡単です。 http://redis.cn/commands/pubs...この方法で、バックエンドもタスクを同時に実行できます
フロントエンドはデータベースに直接書き込むことができません。フロントエンドがリクエストを送信し、バックエンドが書き込み操作を完了した後にバックエンドがそのリクエストを実行します。データベースにタスクの実行を要求する別のメッセージを直接送信できます。 もちろん、このメッセージは、フロントエンドが書き込み成功メッセージを受信した後にフロントエンドによって開始することもできますが、これは不合理であり、サーバー リソースを無駄にします。 このように、バックエンドがタスクを実行する方法はポーリングではなく、応答をリッスンするように変更する必要があります。新規タスクの実行要求を監視すると、データベースからデータが取得され、タスクキューに追加されます。
マシンを追加...
総当りである限り、必ずこの時間間隔が存在します。
MySQL にはデータ監視メカニズムがないようです
フロントエンドに redis または mq のレイヤーを追加できます
1. フロントエンドにタスクを追加します
2. タスクを redis/mq に書き込みます。 mysql に書き込みます
3. バックエンドは redis/mq を監視し、タスクの実行を取得し、実行完了後に mysql を更新します
言うまでもなく、mq は監視がすべてです
Redis はそのために pubsub を使用します
redis pubsub の使い方は非常に簡単です。 http://redis.cn/commands/pubs...
この方法で、バックエンドもタスクを同時に実行できます
フロントエンドはデータベースに直接書き込むことができません。フロントエンドがリクエストを送信し、バックエンドが書き込み操作を完了した後にバックエンドがそのリクエストを実行します。データベースにタスクの実行を要求する別のメッセージを直接送信できます。
もちろん、このメッセージは、フロントエンドが書き込み成功メッセージを受信した後にフロントエンドによって開始することもできますが、これは不合理であり、サーバー リソースを無駄にします。
このように、バックエンドがタスクを実行する方法はポーリングではなく、応答をリッスンするように変更する必要があります。新規タスクの実行要求を監視すると、データベースからデータが取得され、タスクキューに追加されます。