這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。
delay-queue
延遲隊列, 參考有贊延遲隊列設計實現
項目地址
運行
./delay-queue -c delay-queue.conf
預設監聽0.0.0.0:9277
HTTP介面
要求方法 POST
請求Body及傳回值均為json
傳回值
{ "code": 0, "message": "添加成功", "data": null}
參數名 |
類型 |
含義 |
備忘 |
code |
int |
狀態代碼 |
0: 成功 非0: 失敗 |
message |
string |
狀態原因資訊 |
|
data |
object, null |
附加資訊 |
|
新增工作
URL地址 /push
{ "topic": "order", "id": "15702398321", "delay": 3600, "ttr": 120, "body": "{\"uid\": 10829378,\"created\": 1498657365 }"}
參數名 |
類型 |
含義 |
備忘 |
topic |
string |
Job類型 |
|
id |
string |
Job唯一標識 |
|
delay |
int |
Job需要延遲的時間, 單位:秒 |
|
ttr |
int |
Job執行逾時時間, 單位:秒 |
|
body |
string |
Job的內容,供消費者做具體的業務處理,如果是json格式需轉義 |
|
長輪詢ready queue是否有任務, 有任務立即返回或等待180秒後逾時返回
URL地址 /pop
{ "topic": "order"}
參數名 |
類型 |
含義 |
備忘 |
topic |
string |
Job類型 |
|
隊列中有任務傳回值
{ "code": 0, "message": "操作成功", "data": { "id": "15702398321", "body": "{\"uid\": 10829378,\"created\": 1498657365 }" }}
隊列為空白傳回值
{ "code": 0, "message": "操作成功", "data": null}
刪除任務
URL地址 /delete
{ "id": "15702398321"}
參數名 |
類型 |
含義 |
備忘 |
id |
string |
Job唯一標識 |
|
完成任務
URL地址 /finish
{ "id": "15702398321"}
參數名 |
類型 |
含義 |
備忘 |
id |
string |
Job唯一標識 |
|