【问题标题】:Programming language for developing multi platform daemon用于开发多平台守护进程的编程语言
【发布时间】:2011-07-01 18:01:46
【问题描述】:

我正在开发一个需要执行大量批处理(例如 whois 请求)的应用程序。为了确保最佳性能,我想在不同的计算机之间分配工作。为此,我计划编写一个程序,它将查询主服务器上的作业队列,获取一个作业,处理它并用结果更新主服务器。实际处理将由 PHP 完成。我的程序只需要轮询作业队列并调用本地 php 脚本。该作业需要每隔几秒运行一次,因此我无法使用 cron。

谁能推荐一种可以轻松创建这样一个守护进程的编程语言?是否有任何可用的程序可以做到这一点?

谢谢

【问题讨论】:

    标签: scheduled-tasks daemon polling


    【解决方案1】:

    一些笔记

    1. 您可以使用 cron 每隔几秒运行一次(尽管使用 hack)
    2. 您将需要某种分布式队列来保存您的工作(RabbitMQ 是一个不错的选择,或者您可以使用 ZooKeeper)
    3. 根据您选择的队列,有许多编程语言中的 API 可以从队列中删除作业。

    有许多开源工具可以做类似的事情,但这在很大程度上取决于您的需求有多复杂。

    1. Hadoop 是一个复杂的产品,可让您轻松实现这一点
    2. workerpool 是一个简单易用的 python 库,但它是多线程的,将运行单台机器。所以它是最简单的。

    【讨论】:

    • 谢谢你。我一定会检查提到的软件。如何使用 cron 每隔几秒运行一次作业? 1分钟不是最低间隔吗?
    • 对不起,我应该扩大。你说 cron 的粒度是 1 分钟是对的,但是我通常做的是,如果我想每 20 秒运行一次,我会创建三个作业,每分钟一个,一个睡眠 20 秒然后运行相同的作业,另一个睡 40 多岁,做同样的工作。虽然这是一个 hack,所以我不一定会将它用于生产质量工作。
    猜你喜欢
    • 2012-09-27
    • 2010-10-14
    • 1970-01-01
    • 2010-12-06
    • 1970-01-01
    • 2015-02-08
    • 2011-02-09
    • 2010-09-29
    • 2023-03-22
    相关资源
    最近更新 更多