Dziwne, dziwne: wielowątkowość? synchronizacja?

jak niektórzy pewnie wiedzą, napisałem sobie w ror prostą galerię zdjęć lotniczych. dziś zaczęła mi się dziwnie zachowywać.

otóż fotki do tejże galerii dodawane są po prostu przez ftp. a następnie prosta akcja wrzuca je do bazy (parametrem jest data):

def read_directory @dir = @params[:id] directory = @params[:id].split(/-/).join('/') raise Dir.pwd + "public/photo/#{directory}" if not(File.exists?("#{RAILS_ROOT}/public/photo/" + directory)) dir = Dir.pwd Dir.chdir("#{RAILS_ROOT}/public/photo/" + directory) @files = Dir.glob('[^th]*.jpg').sort Dir.chdir(dir) @files.sort.each do |file| if (Photo.find(:first, :conditions => ["date = ? AND filename = ? ", directory, file]).nil?) photo = Photo.new() photo.filename = file photo.date = directory photo.save end end end
no i dziś wrzuciłem 40 zdjęć i ku mojemu zdziwieniu, niektóre z nich zostały umieszczone w bazie 2 razy. zazwyczaj zaraz po sobie, ale niekoniecznie. innymi słowy, 40 zdjęć dało ok. 65 rekordów. operację powtórzyłem: to samo, ale duplikatów mniej. potem jeszcze raz i już jest ok.

co to może być? może się jakieś dodatkowe procesy fcgi odpalają?