この前ようやく3.4.1に上げたら管理画面のダッシュボードにこんな文言が表示されるようになった。
普通に動いてる…気がするのだけどなんだろこれわかんない

"scheduler キューに対応するSidekiq プロセスがありません。Sidekiq の設定を確認してください。"

@azmen その状態だと、バックグラウンドのスケジューラーが動いていないので、修正が必要です。予約投稿がいつまでも実行されない以外は即座に問題になるものは少ないですが、定期処理が必要なものが全て滞ります。

原因は、sidekiqにキューを明示指定していることで、新しく増えた5つめのキューが実行されなくなっているためです。

sidekiqはいくつでもプロセスを増やす(複数実行する)ことが可能ですが、スケジューラーはそのままだと各プロセスで重複実行されてしまう問題があります。これを解決するために、スケジューラーを実行するプロセスとしないプロセスを明示できるよう、キューが分離されました(というか私がやりました)。

古い設定例で、キューを明示指定しているものがあり、これが各地のサーバで問題になっています(ので警告する)。指定したキューしか実行されないため、指定していないスケジューラーが実行されなくなってしまうためです。

簡単な解決方法としては、 -q default のようなキューの指定文字列を削除することです。未指定であれば、優先順位を適切に適用して、すべてのキューが実行されます。

フォロー

@noellabo のえるさんありがとうございます。
明示しているというのは
/dist/mastodon-sidekiq.service
の中の
ExecStart=/home/mastodon/.rbenv/shims/bundle exec sidekiq -c 25
のところでしょうか?
ここでは-qのような指定はしていないのです…(添付)
何か他に触るところがあるのでしょうか??
プログラミングさっぱりなもので、、すみません。

@azmen 設定は合っていそうですね。

sidekiqのダッシュボード(/sidekiq/busy)をみて、schedulerを受け持つプロセスがあればOKです。

逆に、schedulerがあるのに認識されていないとすればそっちがバグですねー。

起動中のSidekiqをチェックして、default, push, mailers, pull, scheduler を受け持つプロセスがあるかどうかをみています。

はて、原因なんだろうなー。

@noellabo ありがとうございます。
そう、ここのことかなーと思って見てたんですけど、sidekiqのこの画面にschedulerが現れないんですよー><

@noellabo 自分の環境がもとからおかしい気がしてきました。
Gemfileというものを覗いてみるとsidekiqのバージョンは6.2?なのにsidekiqのダッシュボードをみるとバージョンが6.0.1と表示されています。
でsystemctl status でsidekiqをみると、CGroup: /system.slice/mastodon-sidekiq.service
└─27617 sidekiq 6.2.1 live [0 of 5 busy]という表記がありました。
そっちのmastodon-sidekiq.serviceの-q〜〜を消すと管理画面の黄色文字が消え、sidekiqの実行中プロセスにもschedulerが表示されました。
これはなんか読みにいってる場所が違う…のですよね
…今日はここまででお手上げです

@azmen 最初にみせてもらったユニットファイルはmainの最新のものだったので、なんか違うの動かしてるかなーとは薄々……。でも、もうそこまでわかれば、ほとんど解決できた感じですね! よっしゃ!

@noellabo あれ、/etc/systemd〜の方を使う?のが正しいんですっけ?それとも/home/mastodon/live/distの方??
これすごい初歩的なことかと思うんですが、、すみません><

@azmen distのやつを、/etc/system/systemdにコピーして使う感じですね!

@noellabo あ、そういうアレなんですね
distの中身を直接見に行ってるというわけではないということですかね

@noellabo なるほど、そういう役割?のディレクトリってことですかね。
もうすみません、ほんと初歩的なことを。
ご丁寧にありがとうございます

ログインして会話に参加
Fedibird

様々な目的に使える、日本の汎用マストドンサーバーです。安定した利用環境と、多数の独自機能を提供しています。