以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=189776)

--  作者:HBysy
--  发布时间:2023/12/25 15:41:00
--  [求助]
求一个思路!
我想实现一个小功能,就是数据被修改后会发送到服务器,服务器接收到数据以后等待30min后判断是否对此数据进行了验证。

方案一、我的设想是接收到数据后,异步调用“验证函数”,异步函数中先“sleep 30分钟” 然后执行验证功能后结束此函数。
但中间还有一个问题,就是设定数据有很多,当一个设定数据被修改的时候就会发送一条数据到服务器。那么我这边就要开启很多个线程
(个人理解,异步调用就会开启一个线程,直到这个函数处理完成),但同时的,如果没有结束掉异步函数的时候,不停的再调用同一个异步函数,会不会导致崩溃。
经过测试,方案一不可行,哪怕我只订阅一个主题,只接收了3条数据,狐表还是会直接卡死。
方案二、编写定时任务,每30分钟进行执行一次。即每次接收到数据后,给上传的设备打上标签,在执行过定时任务以后,将标记清除!

请教一下大家还有没有更好的思路?
以及希望了解一下,狐表的计划管理,是如何实现的,如果使用计划管理的代码,能否实现方案一。
[此贴子已经被作者于2023/12/25 15:42:42编辑过]

--  作者:有点蓝
--  发布时间:2023/12/25 15:48:00
--  
不要使用“sleep 30分钟” 这种代码,任何时候都不要使用

接收到数据后把数据存入数据库,同时保存接收的时间。然后定时查询【接收时间】超过30分钟的数据处理即可

--  作者:HBysy
--  发布时间:2023/12/25 15:52:00
--  
感谢~