在cron-job和webserver执行的PHP脚本之间共享数据

时间:2012-07-16 14:08:53

标签: php cron data-sharing

以下是脚本进行数据共享的常用方法:

  

cron job - schedule - >主脚本

     

HTTP请求 - 触发器 - >儿童剧本

     

主脚本 - > [数据库]< - 子脚本

但他们是否有可能使用以下任何一种方式来共享数据,而不是数据库?

  • global变量
  • 系统存储
  • 会话存储
  • memcache / apc /任何其他类似的东西

5 个答案:

答案 0 :(得分:1)

  1. 不可能
  2. 你对系统存储意味着什么?
  3. 不可能
  4. memcach:如果两个应用程序以某种方式知道值的关键,那将是没有问题的,apc:not possible

答案 1 :(得分:1)

唯一的方法是fs。 DaveRandom建议的套接字或简单文件。

为什么不想使用数据库?你想具体做什么?

答案 2 :(得分:1)

当然,您可以从cron-job(php-cli)执行脚本连接到MySQL服务器,就像您可以从Web服务器那样,假设命令行的php.ini具有数据库库加载。

如果您不想使用数据库,可以设置套接字或使用临时直通文件。但使用数据库将是最有效和最整洁的方式。

答案 3 :(得分:1)

  1. 全局变量 -
  2. 系统存储(来自评论:这是命令行) - 没有,因为这将涉及一个启动另一个,仍然是单向...
  3. 会话存储 - ,使用命名会话,但默认情况下会使用文件(可配置为使用 shm 然后在内存中...)
  4. memcached -
  5. apc - ,但需要在 cli中启用显式配置 sapi
  6. 文件 - 。为了加快速度,您可以使用ramfs将文件存储在内存文件系统中。
  7. 套接字 - (制作一个侦听器并从另一个连接)
  8. 数据库 - (为什么不呢,实际上?)
  9. 如果我遗漏了任何内容,您可以搜索 php进程间通信

答案 4 :(得分:1)

我是第二个文件解决方案:

  • 编码/理解/维护简单
  • 这是万无一失的,当出现问题时你不会丢失内容。
  • 它受到保护免受并发写入
  • 如果您的操作系统决定需要缓存以便频繁访问,那么它与内存一样快。 (通常,不尝试替换OS优化会更简单/更安全/更快。)