在 Django 中捕获外部添加的数据到 Postgres 数据库中



我有一个使用Postgres作为数据库的项目的Django后端。除此之外,我还有一个 systemd 服务正在运行并在数据库中的特定表中插入一个新行。我需要检测在表中插入新行以运行 Django 中定义的回调函数的时刻。该服务需要不同的时间才能完成。我还想提高它的效率。我想到了这些选项:

  1. 我曾经在项目中使用芹菜,但现在不再使用了。它已经设置好了,所以我认为一个选项是检查是否已添加某些内容的 PeriodicTask。不过,我不喜欢定期任务,而且它不是很精确(服务完成的时间和任务运行的时间之间可能存在差距(。如此简单但丑陋
  2. 如果可能的话,我想使用 Postgres 触发器将我的回调任务插入 Celery 队列中。在纸面上,这听起来又快又干净。我不知道如何在芹菜任务队列中添加一些东西。如此干净高效但困难
  3. 我想实现一个单独的服务,它也使用TRIGGER监听Postgres的NOTIFY。然后,它将 cURL 后端以启动回调函数。这似乎很笨拙。所以我

如果看起来我对此了解不多,你是绝对正确的。我边走边学,但这对我来说是必须具备的功能。任何帮助将不胜感激。

你可以添加一个 django 管理命令,并在当前对服务执行后调用它。

举个例子:

[Unit]
...
[Service]
...
ExecStart=java -jar file.jar && /.../python /.../manage.py <management_command>
[Install]
...

最新更新