Допустим, в моем веб-приложении Rails есть следующие потоки:
class MyController
def my_action
count = 0
arr = []
10.times do |i|
arr[i] = Thread.new {
sleep(rand(0)/10.0)
Thread.current["mycount"] = count
count += 1
}
end
arr.each {|t| t.join; print t["mycount"], ", " }
puts "count = #{count}"
end
end
Как видите, переменная 'count' является общей для всех потоков.
Теперь, я хочу сделать поделиться 'count' для нескольких запросов httpd и разрешить my_action в MyController иметь доступ к этой переменной . Например, возможно, все, что порождает процесс ruby для обслуживания процесса httpd, может содержать переменную count в своей области, и тогда процессы ruby, порожденные процессами httpd, могут затем обращаться к этой переменной.
Использование memcached, базы данных и переменных сеанса исключено. В конечном счете 'count' будет фактически объектом ресурса ... FTP-соединение.
Возможно ли это? Возможно, с использованием Apache / Passenger, таких как this ?
Пример кода приветствуется.