首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python flask post请求-担心2个函数同时运行

Python flask post请求-担心2个函数同时运行
EN

Stack Overflow用户
提问于 2018-03-05 06:44:59
回答 1查看 183关注 0票数 0

我有一个python函数,每当我输入一个特定的数字时就会调用它。(回发函数,在flask上运行,并侦听传入的sms。

我还有一个函数,它有一个设定的时间表,每5分钟运行一次,从列表中读取并删除一些条目。

现在唯一的问题是这两个函数都是从同一个列表中读取的。

我担心当调度函数(每隔5分钟)被调用运行时,处理sms的回发函数也会被调用。它们同时运行,并且都试图同时从数组中读取。或者如果函数A从列表中读取,而函数B正在向列表写入。

这是我真正担心的问题吗?这两个函数可以同时调用吗?或者它们永远不会同时从相同的列表中读取。

我用芹菜研究了异步请求,但这并不能解决问题。每隔5分钟运行一次的函数仍然可以与celery函数被调用的时间完全相同,从而损坏列表。

谢谢,我只是糊涂了

EN

回答 1

Stack Overflow用户

发布于 2018-03-05 07:02:38

您的担忧是合理的,应该在代码中处理。

一般来说,列表在python中是线程安全的,但如果列表中的数据不是线程安全的,这仍然会导致问题,请参阅以下答案:

Are lists thread-safe?

您描述的问题类型非常常见,根据您的需求,可以通过以下几种方式来解决:

1)使用锁来保护列表:Python threading. How do I lock a thread?

2)重新考虑方法,并将访问此特定列表的所有逻辑仅放入计时器中。然后,每当有短信进来时,你就把信息推入队列,并从队列中读取信息到计时器中。这会将两个线程解耦。来自另一个问题的示例(这个问题涉及另一个有趣的问题,但您可以只查看队列使用情况本身):Threading in python using queue

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49101311

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档