监视管理命令在Djang的执行

2024-05-14 21:44:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在编写一个Django应用程序,它使用一个管理命令从各种来源提取数据。计划是用cron每小时运行一次这个命令,并且让它在视图中的用户命令上运行(也就是说,当他们添加一个需要数据的新项时,我不希望他们等待下一个小时才能看到结果)。问题是:

如何设置此命令,使其在当前运行时不会执行?有没有什么地方可以存放一个变量,在执行之前脚本可以检查它?我目前最好的想法是让命令监视器stdout运行一段时间,以确保没有其他命令正在执行,但这充其量只是一种黑客行为。这是将在后台运行的唯一任务。你知道吗

我基本上是尽量避免用芹菜。你知道吗


Tags: 数据django用户命令脚本视图应用程序地方
2条回答

你可以创建一个名为“i\u am”的文件_运行.log“在管理命令的开头,并在结尾将其删除(如果有)。运行同一管理命令时,请检查其是否存在。如果不存在-继续。否则-中止。你知道吗

将read函数包装在try/except块中,为执行控制标记一些外部记忆。我以Redis为例:

from redis import Redis

try:
    r_client = Redis() # assuming standard settings
    sentinel = r_client.incr("my_sentinel")
    if sentinel == 1:
        run_command()
    else:
        r_client.decr("my_sentinel")
except Exception as e:
    r_client.decr("my_sentinel")
    raise e

相关问题 更多 >

    热门问题