ただいま受注している案件として
バーコードを用いたタイムレコーダシステムを作成中です。
それなりに多機能です。というか、俺すげー!!って感じです。
ハマったところをチョイチョイ書いて行こうかなと。
【打刻の流れ】
打刻があったらajaxを使って、
IDとパスワードの認証->DBに打刻データを追加->打刻お知らせメール送信->打刻完了画面を表示
で、一括で処理を行っていたのだが、ここでちょっとハマる。
メール送信をするところで、
サーバ状況や、タイミングによって、送信処理がなかなか終わらない。
↓
終わらないと打刻完了画面が返ってこない
↓
打刻した人、わけがわからないからもう1回ためす。
↓→→→→→→→→戻ってやりなおし ↑
送信・登録処理がエラーになっているわけではないので、やり直した分だけメールが送られてしまう(汗)
こえええぇえ…
ということで、レスポンスを最速にするためにいろいろ考えた結果、
打刻があったら一旦メールをdbにためて、一定時間ごとにcron使ってチェックして別処理させることにした。
試行錯誤のうえ、一応完成。
DB登録の場合は流石にレスポンスも早い。実用に十分耐える反応を示してくれるようになりました。
まとまってきたところで、ググってみると・・・(順序逆っぽいけど)
http://pear.php.net/manual/ja/package.mail.mail-queue.mail-queue.tutorial.php
PEAR にそういう機能があるんですね、やり方は間違ってなかった!!
コレを応用して、送信時刻予約のできるメール機能もついちゃったよ!すごい!
支離滅裂。