我有一个主服务器,它将数据导入到从属服务器上的MySQL数据库中,我试图让它继续运行,直到从属服务器达到接近容量。我通过在厨师食谱中设置cron作业来完成这项工作,每15分钟运行20个不同的ruby文件。一切正常工作大约一个小时,然后数据库停止输入。请问有人对此有所了解吗?
我做过的事情: 1)登录数据库并添加条目。这可以。 2)检查cron日志以查看已运行的作业。这很好。
这是我的一个导入文件,但我认为它没有任何问题
require 'rubygems'
require 'mysql2'
require 'open-uri'
#my = Mysql2::Client.new(hostname,username,password,database)
con = Mysql2::Client.new(:hostname => 'ipaddress',
:username => 'username',
:password => 'password',
:database => 'database')
con.query("CREATE TABLE IF NOT EXISTS words(id INT PRIMARY KEY AUTO_INCREMENT,value VARCHAR(50));")
open('http://samplewebsite.txt').each_line do |word|
word.split(" ").each do |str|
outstring = str.gsub(/[^a-zA-Z0-9\-]/,"")
con.query("INSERT INTO words(value)
VALUES('"+outstring+"');")
end
end
puts "Done!"
con.close
提前致谢
编辑:经过一段时间的思考后,我意识到自己的错误(以及下面人们的回答),我从服务器上多次访问同一个网站,所以我被封锁了。我已经修改了我的食谱去了不同的网站,所以它们更加分散,现在一切正常。感谢wjo的回答!