バグ #932
完了
Osamu Koga さんが約8年前に追加.
7年以上前に更新.
説明
以下のプラグインをインストールして試した所、on_periodが連続して2回実行されていました。間隔は1分のようです。
Plugin.create :period_test do
on_period do
puts Time.now
end
end
- 関連している バグ #916: 定期的にfollowアクティビティが大量に生成される を追加
- ステータス を 新規 から レビュー待ち に変更
- 担当者 を Osamu Koga から toshi_a 初音 に変更
既知の問題だったんですね。この現象自体は #916 を追っているときに気づいただけで、フォローイベント大量生成と関連があるかと思っていたのですが、結局別々の問題だったようです。
今の挙動はイベント名とうまく噛み合ってない気がしますが、それぞれのServiceだけにイベントを送るようにするのも簡単ではなさそうですし、World対応で色々変わりそうなので、とりあえずは放置しておくのが良さそうですね。
名前が適切でないという問題はそうなんですが、当初このイベントは一定時間ごとにホームTLやMentionをポーリングするために用意されたものでした。なのでService毎に呼ばれるのは自然なのですが、mikutter 3.0までそのことを忘れていたmikutter作者が、periodを毎分の定期実行のために利用するという誤用を流布しており、厳しい状態です。
Worldの実装が進んできて、periodはすべてのServiceではなく、Twitter Worldの数だけ呼び出すという風にしないと互換性が取れないことが分かってきています。
いっそ実行間隔などを設定できるなどの改良をした仕組みを用意したほうがいいかなとぼんやり考えていたのですが、このチケットを見てperiodは禍根になりそうという気持ちを新たにしました。イメージとしては
timer 1, :minute do
# 1分毎
end
みたいなのが使いやすいかなと思ってたんですが、まだいろいろ考えている段階なので、こんなこともやりたい、といった要望を上げてもらえば、考慮するかもしれません。今は無理なので後で新たにチケット作ると思いますが、先に意見があればここにどうぞ
他の形式にエクスポート: Atom
PDF