【问题标题】:Simple daemon with SymfonySymfony 的简单守护进程
【发布时间】:2013-01-11 23:07:37
【问题描述】:

我有一个 symfony2(php 框架)应用程序,为此我编写了一个可以从命令行调用的命令。此命令只是检查数据库中的表中的任务,然后执行该任务。我需要的是一个类似守护进程的生物,只要将一行插入到这个(mysql)数据库表中,它就可以在后台运行这个命令。我无法使用 cron 作业来执行此操作,因为所需的任务需要尽快发生,并且通常需要并行发生。

我看错了吗?

服务器:Ubuntu 11.10 PHP: 5.3 Symfony:2.1 mysql: 5.1.66

【问题讨论】:

  • 我曾经遇到的场景是带有 xp_cmdshell 的 SQL Server 触发器。插入大量行(即批量插入)时会出现巨大问题。我保持轮询方式,有时使用普通的旧 cronjob,有时使用 python 守护程序,让我可以更频繁地进行轮询,而不是每分钟一次。
  • 数据库触发器在您的情况下是否有效? dev.mysql.com/doc/refman/5.1/en/create-trigger.html

标签: php symfony daemon


【解决方案1】:

我假设您正在使用某种 ORM 来实现持久性。然后我可能会在Propel 中使用类似 postInsert() 的钩子

插入新对象后执行的 postInsert() 代码

Doctrine中的postPersist()。

postPersist - postPersist 事件在实体被设为 >persistent 后发生在实体上。它将在数据库插入操作之后被调用。生成的主键值在 postPersist 事件中可用。

这里有更多关于lifecycle events的信息。

【讨论】:

    【解决方案2】:

    即使这是一个非常古老的问题...... 我找到了https://github.com/mac-cain13/daemonizable-command

    可能对您需要做的事情有用。

    【讨论】:

      猜你喜欢
      • 2012-07-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-02
      • 1970-01-01
      • 1970-01-01
      • 2011-01-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多