forkでApacheのタイムアウト時間無視できるようにしてたつもりが、普通にkillされてたので処理を書き直しました。
あと、DTIのVPSで公開DNSサーバを踏み台にされてるユーザがいるそうで、それで周りのサーバもみんな不安定になってるみたいです。私はBIND系入れてないのですが、とりあえずチェックだけはしときました。
色々工夫したのですが、サーバへの負荷と処理の煩雑さを見るとコールバックで処理完了通知を書くのは無理なので諦めました。
一番楽な方法として「処理の完了通知をDMかツイートで行う」というのがあるのですが、ユーザの意思に反する投稿を行うのは私のポリシーに反するので、リストの説明文に処理結果を出力することにしました。
とりあえず5000人の配列で3600人くらいまで入れられたのでもういいかなって気がします。前にも書いたけど、15分スリープ処理とか、途中から再開する機能の実装はそこまでする義理がないのでやりません。メール通知版だけ15分後に再開させるようにしました。通知しない版は終了確認で負荷がかかるのと、むやみにプロセス増やしたくないので切り捨てました。
retrorocket/list
あと、今回色々あってgithubのリポジトリ全部消そうか悩むレベルで本当に懲りたのと、リアルでもご指摘受けたのでgithubのREADMEにライセンスについて書いておきました。BSDライセンスが自分の希望と組み合わせて使えるのかわからないのですが、とりあえず「list関数は流用したら著作権表示をお願いする」形式で行きたいと思います。無理そうなのでBSDライセンスだけにしました。
私がgithubにソースを載せているのは、ロジックに怪しい部分がないとかそういうことの証明に使ってるというのと、Twitter API周りはモジュールの使い方とかサンプルみたいなものがないと取っ掛かりが厳しいと思うので、ちょっとプログラム書いてみたいけどよくわからないと思ってる方向けに公開しています。自分が色々な方の書いたコードに助けられてる面が大きいので、自分も力になれればいいなーっていう気持ちです。まあモジュール叩いてるだけだから何もしてないっちゃしてないんですけど…。
プログラムすらすら書ける人からみたらひどいコードですが、このソースコード書くまでに私もそれなりに時間をかけて学習していて、そのままコピペされたのを使われてサービス公開されたらさすがに凹むので勘弁してください。
あと、人のコードを流用して使うときはロジックと環境をちゃんと理解してから使って欲しいなぁと思いますし、自分も人のコード使うときは理解して使いたいなと思います。