我真的坚持这个。
用户在我的网站上输入一些我需要稍后在一系列批处理作业中处理的数据。我真的知道如何使用在线交易。我不知道以批量方式处理数据的顶级技术趋势是什么。我应该使用cron作业,可以将Perl用于我需要的那些批处理脚本吗?是否有主要方法来做我需要的事情?
最好的, 德棉
答案 0 :(得分:1)
您选择哪种语言是不相关的(选择一个您最熟悉的语言),但Perl是 非常出色(将其用于此目的等)。
你肯定可以在Unix / Linux上使用cron守护进程来安排作业,如果你有的话。还有其他用于不同操作系统的调度程序,包括免费/包含和商业(例如Autosys),具体取决于您需要批量处理的内容/方式。但是cronjobs通常足够好并且易于使用。
关于将web应用程序加入批处理器有很多要点,但由于你没有提供足够的细节来构建,我只会指出你开始时的第一个选择 - 你需要以某种方式传达数据。
最容易的是某种数据库后端(根据您的需求/需求/预算选择你的毒药 - 从BerkleyDB / SQLite在simlistic端到MySQL / Postgress免费一面到Sybase / Oracle用于现实世界。
否则,您可以使用文件进行一些简单的数据处理,但要准备好微调文件权限 - Web应用程序创建的文件通常与批处理用户具有不同的用户ID(出于安全原因)。
答案 1 :(得分:1)
Cron作业用于在设定的时间间隔内重复运行某些作业或过程。您可以使用所需的perl或任何服务器端语言。 cron工作只是运行你告诉它的任何东西。
以下是为perl脚本运行crontab的人的示例: http://www.linuxquestions.org/questions/linux-software-2/adding-a-perl-script-to-cron.daily-cron.d-to-setup-a-cron-job-592762/
你可以自己谷歌搜索文档,但我链接到的帖子与你的情况类似。
当然,我假设您的服务器允许您运行cron作业并安装了perl。
答案 2 :(得分:1)
您可以使用一组守护进程来轮询您的队列以查找新任务。或者你可以使用消息排队产品或像Gearman这样的东西。或者你可以运行cron作业,不时检查新的工作。
您可以在数据库中保留任务队列;如果您有大量任务和进程,这可能效率不高,因此您可能需要调查许多消息队列产品。
您可以为每台服务器运行一个或多个代理任务(守护程序等),或只运行一个。您可以同步或异步运行它们以从他们需要的任何服务器收集数据。
您可以将结果写入另一个数据库,或通过电子邮件或文件发送。你可以用任何语言或几种语言的混合写出所有这些。
选项实际上是无穷无尽的:)
答案 3 :(得分:0)
在Java世界中,通常是消息队列系统的工作。但是如果你在* nix世界,我认为一个cron工作是一个很好的选择。