2017-04-07 9 views
0

私は現在、異なるホストから価格を取得するためのAPIをLaravel(PHP)に構築しています。現在、756種類の異なるコインがあり、異なるホストから価格を取り出すことができます。例えばPHPで大量のタスクをスケジュールする最良の方法

:コインX

ホスト1 ホスト2ホスト3 - 最大 - 30台のホスト

コインY

ホスト1 ホスト4ホスト5まで30ホスト など

ここで問題となるのは、10秒ごとに各コインを更新するのが理想的です。これは、各コインがすべてのホストを呼び出し、平均価格を計算し、DBに価格を保存し、最後にコインの合計履歴を含むJSONファイルを保存する必要があることを意味します。 (おそらく、現在の価格をJSONとして保存して時間を節約するほうがよいでしょう)

私はこのすべてを各ホストのクラスに入れようとしましたが、実行時間が長すぎますCURLを使用して分)。

私は、各コインのタスク(cronジョブ)を作成すると考えています。このようにして、コインの「更新」は同期することができる(複数のコインを同時に)。しかし、私はこれが最善の方法であると確信しているわけではありません。

あなたはどのようなアプローチをお勧めしますか?すべてのヒントを歓迎します。

答えて

0

あなたの全体的な更新時間は、コインの数×個々のホストの更新速度によって制限されます。すべてのものがどれくらい時間がかかるかを見るためには、1つの(またはavg)リクエストが(スクリプトを使用して)どれくらいかかるかを時間を計測したいかもしれません。それは時間がかかり過ぎて、次々にそれをやりなおす場合、並列(同時に)要求を行うように設定する必要があります。

+0

こんにちは、ヘイデン、ありがとうanwsering。 1回のリクエストの平均時間は約1時間です。 500〜700ミリ秒。私が正しく理解すれば、すべての要求をCURL_MULTIに入れることを提案しますか?私はまだそれをテストしていませんが、良い呼び出しです。 – Thjeu

+0

私はCURL(単なる単純なリクエスト)とはあまり関係がありませんでしたが、グーグルでは同時に、同時にリクエストを行うことはできません。しかし、あなたがこれを行うことができる方法は、試してみる価値があります。 1つの関数で複数の呼び出しを行うことも、関数の複数の呼び出しを行うこともできますが、間隔を置いてPHPスクリプトを呼び出すには、まだcronジョブが必要です。 –

+0

うわー、私はcurl_multiで全プロセスを実行し、12秒に時間をダウンスケールしました。これは素晴らしい。私はここからさらに働くことができます。多くのありがとうHayden! – Thjeu

関連する問題