我正在建设一个使用ColdFusion和MySQL的拍卖网站。在新西兰,主要的拍卖网站是www.trademe.co.nz。在该网站上,一旦拍卖到期,它就会显示一种“结束”状态,在拍卖消失之前,该状态持续大约一分钟。什么样的例程可以在MySQL或ColdFusion中运行,或者两者兼而有之,从而触发拍卖到期日?我听说过CRON,但据我所知,这类似于在设定时间运行的ColdFusion计划任务。而且,它不适用于Windows。
但是,这里似乎需要的是一次拍卖已经过期的实时恢复,而不是每分钟一次的拍卖,这会错过时间间过期的拍卖。
希望这是合理的。我正在寻找一种方法或前进的道路与这一点。
发布于 2014-07-11 08:39:51
想必您在auctionClosesAt DB中有一个auctionDuration或mySQL列:您能通过cfschedule编程地添加一个一次性的计划任务吗?
因此,当拍卖开始时,它所做的部分工作就是创建一个有确切拍卖结束时间的cfschedule。即现在+7天
您必须设置一个正常的计划任务来删除过期的计划任务,我想也是如此。
你可以做的另一种方法是让拍卖结束的确切间隔,即5/10/15/20/25等几分钟后的时间,并运行的任务,在那些确切的时间。
发布于 2014-07-11 08:37:16
好的,并不是真正的数据库能够做到这一点,但是通常情况下,您将这样处理:
拥有一个随时运行的后台进程、守护进程或服务(如果是Windows)。这将基本上是一个时钟,但也将保持队列的即将结束时间,并安排事情发生在每一次拍卖的结束时间。
现在,您必须能够在每次结束时“喂食”此服务。无论你拥有什么,设定新拍卖的结束时间,都需要以某种方式“发出信号”,即有一个新的结束时间需要注意。
有许多方法可以编写守护进程/服务来“侦听”事件,还有许多方法可以让拍卖结束时设置器发出这些事件来告诉服务有关它们的信息。如果我们讨论其中的可能性,这个答案将会变得非常长,但本质上理解您需要一个事件源(设置结束时间)和一个事件侦听器(在每个结束时间安排工作的事情)。
如果你想了解更多关于这个方面的细节,你可以搜索和/或发布其他问题。
https://stackoverflow.com/questions/24692615
复制相似问题