-4

Zend Framework 2で自動化されたphpプロシージャを実行するための最良の方法は何ですか?

データベース(mysql)で動作するようにタスクをスケジュールしたいのですが、HTTP呼び出しとは相互作用しません。つまり、サーバー側の実行のみと相互作用します。

手順をフレームワークモジュールで定義したいのですが、可能ですか?

モジュールで定義できない場合、外部でどのように行うことができますか?

4

1 に答える 1

1

PHPで作業を行う必要があるかどうかはわかりませんが、そうでない場合は、MySQLのイベントスケジューラを利用できます。これにより、データベース内でスケジュールされたジョブを実行できるようになります。このようなイベントを作成するための構文について詳しくは、こちらをご覧ください。次に例を示します。

CREATE EVENT some_event
ON SCHEDULE AT 12:34:00 EVERY DAY
DO
UPDATE my_schema.my_table SET my_column = my_column + 1;

私はそれをテストしなかったので、うまくいけばうまくいきます。

または、サーバーでcronジョブを作成することもできます。ほとんどの共有ホスティングプロバイダーでもこれを行うことができます。共有ホスティングを使用していない場合は、cronjobで次のように実行できます。

mysql -u username -p password -e "UPDATE my_schema.my_table SET my_column = my_column + 1";

繰り返しますが、テストされていませんが、正しい方向を示しているはずです。

もう1つのオプションは、cronjobを一緒に使用して、cURLcronjobの実行時にURLが要求されるようにすることです。

curl http://yourdomain.com/yourtask

次に、Zend Frameworkでは、yourtaskルートを設定するか、URLでモジュール、コントローラー、アクションを使用することができます。次に、PHPとZendFrameworkからデータベースクエリを送信します。

また、cURLによって呼び出されるスタンドアロンのPHPスクリプトを別の場所に置くこともできます。または、PHPを直接使用することもできます。そうすれば、それは世界中で利用可能である必要はありません。

ご覧のとおり、かなりの数のオプションがあります。あなたのケースに合ったものを選択してください。この選択を行うための十分な詳細がありません。

于 2013-02-08T12:10:48.193 に答える