从Djang中长时间运行的后台进程获取信息

2024-09-30 14:32:54 发布

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

我想在后台进程上运行一个计算模拟(从redisrq开始),在那里我可以查询它的当前状态,以及使用Django更改参数。在

为了简单起见:假设我想长时间运行以下代码(我将通过python worker进行设置):

def simulation(a=1):
     value = 0
     while a != None:     
          value += a
          time.sleep(5)

然后,通过访问一个URL,它会告诉我value的当前值。我还可以发布到URL来更改a的值,即a=None以停止模拟,或者{}来更改行为。在

最好的办法是什么?在


Tags: django代码noneurl参数time进程value
1条回答
网友
1楼 · 发布于 2024-09-30 14:32:54

我发现最好的方法就是使用缓存

from django.core.cache import cache

def simulation(a=1):
     value = 0
     while a != None:     
          value += a
          cache.set('value', value, 3600)
          time.sleep(5)
          a = cache.get('a', None)

这确实有用,但对我的需要来说太慢了。也许我没有用插座的方法。套接字在后台进程中被阻止。在

相关问题 更多 >