AlmaLinux / AlmaLinux/build-system

Keep track of background tasks statuses

未關閉
#259 0 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視
主要語言
沒有語言資料
星號
32
分支
11
PR 合併指標
30 天內沒有已合併 PR

描述

We explored the possibility to keep track of background tasks that are sent.

This would involve:
- Creating a new table background_tasks in db that includes the build task (or release, or whatever task that is done through dramatiq), status and tiimestamp
- Create a small middleware that updates the records in the background_tasks table

The most interesting background tasks to track are the build-related ones, but can also be applied to anything we do with dramatiq.

Here’s a small example of the middleware we can create
```
class MyMiddleware(Middleware):
def after_process_message(self, _broker, _message, *, result=None, exception=None):
print("after_process_message, result:", result)

def before_process_message(self, _broker, _message):
print("before_process_message")

def after_enqueue(self, _broker, _message, _delay):
print("after_enqueue")

def before_enqueue(self, _broker, _message, _delay):
print("before_enqueue")

def before_ack(self, _broker, _message):
print("before_ack")

rabbitmq_broker = RabbitmqBroker(
url=f"amqp://:@:/",
middleware=[MyMiddleware()]
)
dramatiq.set_broker(rabbitmq_broker)
```

貢獻指南

開啟貢獻指南

評估

這個 Issue 還沒有評估資料。

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。