2017-12-21 25 views
0

私はいくつかの助けを(再び)得ることができます。私はマルチテナントのPHPアプリケーションに取り組んでいます。各テナントには独自のデータベース(mysql)があります。最終的には、ELB、EC2、およびDynamoDBを使用してAWSにサービスを立ち上げる計画です。マルチテナントPHPアプリケーションのCronジョブ/スケジュールされたタスク

しかし、アプリは特定のスケジュールされたタスクを実行する必要があります(特定の顧客のためにPSAから請求書を引き出し、Authroize.net CIMを使用して顧客に請求し、PSAで支払いを行う必要があります)。

通常のアプリケーションでは、毎日実行されるcronスクリプトを作成して、支払いバッチを作成/処理します。私は、各テナント(各データベース用)にcronを実行するのに適切なアプローチがどのようなものか分かりません。各テナントにまたがって実行されるマスターcronジョブ、またはSWFを使用して各テナントのcronジョブを作成/維持するためのスクリプトを作成しますか?

ありがとうございます。

答えて

1

私は過去にcron経由でバッチ処理を行うことで合理的な成功を収めました。テナントの作成をテーブルに記録すると、cronジョブ内で実行するデータベースのソースとしてクエリできます。

+0

これは良いアプローチのようです。私はテナント(データベース情報を含む)のデータベースを持っています。アクティブなテナントのためにそのテーブルを照会し、バッチを作成するのに十分なはずです。 ** EDIT(入力がコ​​メントを提出することを認識していませんでした)***:多くのテナントの後で、それは大きなバッチになります(テナントごとに複数のAPIを照会する必要があります)。おそらくインスタンスをそれ専用にすることは意味をなさないだろうか? –

+0

個々のバッチをバックグラウンド処理して並列に実行できないようなことはありますか?同様のプロセスでこれを実行して、バッチ処理をより迅速に完了させました。あなたがこのルートに行くなら、あなたはあなたのサーバーに望ましくないストレスをかけていないことを確認したいでしょう:) –

+0

経験?それは答えです...私はこのようなマルチテナントアプリをこれまでにやったことはありません。私はいつもcronが豊富であったシングルテナントアプリをやってきました。 –

関連する問題