過去にタイマーを設定すると機能しないようですが、実際には機能します

私は頻繁に、トピックのカテゴリを変更(非公開から公開へ)するために POST /t/:topic_id/timer アクションを使用しています。

time パラメータが未来の日時であれば問題なく動作しますが、現在の時刻(または誤って過去の日時)を指定すると、有効なレスポンスは返されますが、カテゴリの変更が即座には反映されません。

通常、反映までに 5〜10 分かかり、これは混乱を招くことがあります(これは内部のポーリングループの頻度に起因していると考えています)。

以下は、過去の日時を指定したリクエストとレスポンスの例です。

# リクエスト
POST /t/4378/timer HTTP/1.1
Accept: application/json, */*;q=0.5
Accept-Encoding: gzip, deflate
Api-Key: REDACTED
Api-Username: REDACTED
Connection: keep-alive
Content-Length: 96
Content-Type: application/json
Host: REDACTED
User-Agent: HTTPie/2.2.0

{
    "category_id": "54",
    "status_type": "publish_to_category",
    "time": "2020-10-26 08:09:45+01:00"
}

# レスポンス
HTTP/1.1 200 OK
Cache-Control: no-cache, no-store
Connection: keep-alive
Content-Encoding: gzip
Content-Type: application/json; charset=utf-8
Date: Mon, 26 Oct 2020 07:09:46 GMT
Referrer-Policy: strict-origin-when-cross-origin
Server: nginx/1.18.0 (Ubuntu)
Strict-Transport-Security: max-age=63072000;
Transfer-Encoding: chunked
Vary: Accept-Encoding
X-Content-Type-Options: nosniff
X-Discourse-Route: topics/timer
X-Discourse-Username: REDACTED
X-Download-Options: noopen
X-Frame-Options: SAMEORIGIN
X-Permitted-Cross-Domain-Policies: none
X-Request-Id: REDACTED
X-Runtime: 0.055819
X-XSS-Protection: 1; mode=block

{
    "based_on_last_post": false,
    "category_id": 54,
    "closed": false,
    "duration": null,
    "execute_at": "2020-10-26T07:09:45.000Z",
    "success": "OK"
}

更新: これは API に固有の問題だと考えていましたが、UI でも同様の問題が発生します。過去の日付は選択できませんが、過去の日時を選択することは可能だからです。

動作は同じです。タイマーが設定されたという表示はありませんが、設定から 5〜10 分後に作動してしまいます。

「いいね!」 2

これは少し特殊なケースですが、今日の日付かつ過去時刻のトピックタイマーを提出した場合、サーバーはエラーメッセージを返すべきだと考えます。

「いいね!」 3

実際には、過去の日付設定をブロックするコードのバグ :bug: があります。PR はオープンされています:

「いいね!」 3