【问题标题】:Creating a cron job for job pool for my membership website - whats a good table design?为我的会员网站创建作业池的 cron 作业 - 什么是好的表格设计?
【发布时间】:2010-07-04 09:35:21
【问题描述】:

大家好,我想为我的会员制网站建立一个工作池。我网站上的用户可以选择执行某些需要一段时间才能完成的任务,例如发送邀请电子邮件等。我没有在表单提交上运行它,而是在考虑创建一个表格,以便为该工作输入条目要求。例如,用户希望向他的所有好友发送请求电子邮件。我不想在表单提交时将代码设置为电子邮件,而是对其进行设置,以便当用户提交他的表单时,会在工作表中创建一个条目。在后端,一个 cron 作业会定期检查表中的任何作业,当它找到一个作业时,它会根据所做的条目执行该作业。

现在我只是将它设置为处理我的网站成员发出的电子邮件请求 - 但是我希望数据库设计具有足够的可扩展性以处理不同类型的工作,所以对于这种类型的表架构来说什么是好的工作台球桌? 我可以将什么用于唯一 ID - 或者我是否需要此表中的主键? 我应该在完成后删除作业还是仅用状态标记它们?

任何人都可以回答上述问题并给出一个表格的想法,我们将不胜感激。

【问题讨论】:

    标签: php database-design cron


    【解决方案1】:

    即使您“不需要”主键,拥有主键也是一件好事,因为它有助于操作。

    由于您将在后端使用 cron,您可能需要检查允许安排后台任务的 at 命令。您可能会发现根本不需要表格,只需将其留给操作系统排队,触发查看可以做什么并执行它。 您可以从 a-z 指定队列,其中较高的字母以较高的友好度运行,即它们将从其他进程中窃取较少的 CPU,从而使您的网站更具响应性。

    如果您安排自己的脚本,最好有一个表格来报告批处理作业的结果,其中包含完成时间、状态、状态的有意义描述、运行它的用户以及是否用户已阅读/确认它,因此您可以向用户提供反馈。这通常是后台操作的致命弱点,用户很难“看到”正在发生的事情。

    【讨论】:

    • 好点 - 我正在听取您关于主键的建议并记录已完成的工作 - 谢谢!
    猜你喜欢
    • 2018-05-21
    • 2016-03-18
    • 1970-01-01
    • 1970-01-01
    • 2021-03-25
    • 1970-01-01
    • 2014-07-23
    • 2013-06-10
    • 1970-01-01
    相关资源
    最近更新 更多