과거 시간으로 타이머를 설정하면 작동하지 않는 것처럼 보이지만 실제로는 작동합니다

저는 주로 POST /t/:topic_id/timer 액션을 사용하여 토픽 카테고리를 변경(비공개에서 공개로)합니다.

time 파라미터가 미래의 시간인 경우 이 동작은 정상적으로 작동하지만, 현재 시간(또는 실수로 과거의 시간)을 사용하면 유효한 응답을 받지만 카테고리 변경이 즉시 이루어지지 않습니다.

보통 5~10분이 걸리며, 이는 혼란을 줄 수 있습니다(내부 폴링 루프의 주기 때문이라고 추정합니다).

다음은 예시 요청(과거 시간) 및 응답입니다:

# Request
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"
}

# Response
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개의 좋아요

실제로 과거 날짜 지정이 막히는 버그가 코드에 있습니다. PR이 열려 있습니다:

3개의 좋아요