検索して検索して検索しましたが、それに関するリソースは見つかりませんでした。
AppFog の PHP アプリでワーカーを実行する方法はありますか?
その言語のフレームワークに基づいて、Ruby、Node.js、および Python ワーカーを実行するための手順しか見つかりませんでした。
検索して検索して検索しましたが、それに関するリソースは見つかりませんでした。
AppFog の PHP アプリでワーカーを実行する方法はありますか?
その言語のフレームワークに基づいて、Ruby、Node.js、および Python ワーカーを実行するための手順しか見つかりませんでした。
いろいろいじくり回した結果、方法を見つけました!
PHP スクリプトでは、タイムアウト制限を0
に設定し、次のように無限ループにする必要があります。
<?php
set_time_limit(0);
while (true) {
print "blah\n";
sleep(120);
}
このコードは、2 分ごとに "blah" を出力します。
これを AppFog にデプロイするには、 console コマンドを使用する必要があります。af
ここで重要なことは、それが PHP アプリかどうかを尋ねられたときに「いいえ」と答えることです。
af push
ディレクトリにphp index.php
または、アプリケーションのメイン ファイルに付けた任意の名前を入力します。以下にすべてを示します。
D:\Users\Leonel\dev\app>af push
Would you like to deploy from the current directory? [Yn]:
Application Name: APP
Detected a PHP Application, is this correct? [Yn]: n
[...]
6: Standalone
[...]
Select Application Type: 6
Selected Standalone Application
[...]
5: php
[...]
Select Runtime: 5
Selected php
Start Command: php index.php
1: AWS US East - Virginia
[...]
Select Infrastructure: 1
Application Deployed URL [None]:
Memory reservation (128M, 256M, 512M, 1G, 2G) [128M]:
How many instances? [1]:
Bind existing services to 'APP'? [yN]:
Create services to bind to 'APP'? [yN]:
Would you like to save this configuration? [yN]:
Creating Application: OK
Uploading Application:
Checking for available resources: OK
Packing application: OK
Uploading (0K): OK
Push Status: OK
Staging Application 'APP': OK
Starting Application 'APP': OK
D:\Users\Leonel\dev\APP>af logs APP
====> /logs/stdout.log <====
blah
blah
curl
ます。同じアベイラビリティーゾーンにあることを確認してください。af logs APP
ワーカーの出力が得られるので、デバッグしてすべてが問題ないかどうかを確認できます。それだけです。お役に立てば幸いです。
優れたソリューション。評判が不十分でコメントできないため、元の回答を変更しています。
PHP 疑似 crontab を指定した秒に開始できるようにするには、次のように、スクリプトの開始時に強制ループを使用します。
<?php
set_time_limit(0);
// begin process at zero (00) second mark
$cnt=0;
while (true) {
usleep(250000); // avoid excess looping
if ( date('s',time()) == '00' ) {
break;
}
if ( $cnt++ > 240 ) {
break; // something has gone wrong...
}
}
var_dump(date('s',time()));exit; // test/validate
while (true) {
print "blah\n";
sleep(120);
}