初め、
セットアップ:
ユーザーが必要なデータをスクリプトに送信する「アップロード」ボタンを押した後に、いくつかのタスクを実行するスクリプトがあります。現在、この部分は必須です。現時点では、アップロードを切り取ってライブ ソースから描画するオプションはありません。
このセクションは、要点を説明するために意図的に長文になっています。それが嫌なら飛ばしてください
現在、データは正規表現を使用して非常にファンキーなソースから解析され、配列に分解されます。次に、アップロードされたデータの日付範囲に既にあるデータがないかどうか DB をチェックします。データの日付範囲がまだ DB に存在しない場合は、データを挿入し、ユーザーに成功を出力します (いくつかのセキュリティ チェック、データ ソースの検証、および基本的なアップロードの検証もあります)... データが存在する場合、次にスクリプトは、DB に既にあるデータを取得し、2 つのセットの違いを見つけ、一致しない古いデータを削除し、新しいデータを追加してから、これらの変更の影響を受ける各人にメールを送信します (1 人につき 1 通のメール)。該当するすべての変更をメールに記載する必要があります。これはまったく別の手順です)。私たちのデータベースには仕事用の電子メールがありますが、LDAP には個人用の電子メールがあるため、電子メール アドレスは LDAP 検索によって取得されます。最後に、データ アップローダーに「変更が行われ、メールが送信されました」と通知されます。彼らが気にするのは本当にそれだけです。
ここで、ユーザーの Google カレンダーにデータを投稿する (データをスケジュールする場合) Google カレンダー API を追加する可能性があります。私は彼らの仕事の予定表を介してそれを行いますが、Exchange 用の WebDav システムのセットアップに対処する前に、Google の API に慣れる必要があると考えていました。
</backstory>
今!
実践的な質問
Google 統合前のこの時点では、スクリプトの実行にかかる時間はせいぜい 1 秒半です。それはかなり印象的です、少なくとも私はそう思います(私のコーディングではなくサーバー)。しかし、テストでは、Google ビットは SLOOOOW です。おそらく修正できますが、より大きな問題が発生します...
DB が更新されたことをユーザーが確認した後、作業の一部をオフロードする最善の方法は何ですか? これは彼が最も関心を持っている部分であり、最も重要な部分です。メール通知と Google カレンダーの更新は、アップロードの影響を受けるユーザーの利益のためだけに存在します。これらの通知に問題がある場合は、スクリプトの内容に関係なく、彼に通知されます (その後、私に通知されます)。彼を最初に。
たとえば、スクリプトの最後の実行によってトリガーされる cronjob を実行する方法はありますか? PHPはexec()
機能を備えたcronジョブを作成できますか? 完了する必要がある実行後の作業を処理する正規化された方法はありますか?
これに関するアドバイスは本当にありがたいです。スクリプトの肥大化は、私の開発段階と、Web アプリで分業を行う方法を最終的に知る必要があることを反映しているように感じます。
しかし、ユーザーはすべてのタスクがいつ完了したかを知る必要があるなど、これが行われていないのではないかと心配しています。
ベストプラクティス/より主観的な質問
基本的に、進行状況バー、リアルタイムのオフロード、およびユーザーをスクリプトにつなぎ留めておくその他の方法は、もちろんコードの最適化と組み合わせると、単純な方法よりも優れた、より好ましい方法であるという考えはありますか? 「私たちはあなたの役割を終えました。あなたが私たちを必要とするなら、私たちはユーザーに通知します」など.
避けるべき大きなことはありますか (明らかにユーザーにフィードバックをまったく提供しないこと以外に)?
読んでくれてありがとう。コーディング部分は非常に重要なので、2 番目の部分をカバーする必要があると感じたり、コーディング部分をカバーするのを忘れたりしないでください。