Я бы хотел использовать Кассандру для хранения счетчика. Например, сколько раз данная страница была просмотрена. Счетчик никогда не уменьшится. Значение счетчика не обязательно должно быть точным, но оно должно быть точным со временем.
Моей первой мыслью было сохранить значение в виде столбца и просто прочитать текущий счетчик, увеличить его на единицу, а затем вернуть обратно в Однако, если другая операция также пытается увеличить счетчик, я думаю, что окончательным значением будет просто значение с последней отметкой времени.
Еще одна мысль - сохранить загрузку каждой страницы в виде нового столбца в CF. Тогда я мог бы просто запустить get_count ()
для этого ключа и получить количество столбцов. Читая документацию , кажется, что это не очень эффективная операция вообще.
end foo () {ставит "один"} {ставит "два"}
Что-то вроде:
def foo(&b1, &b2)
b1.call
b2.call
end
foo() { puts "one" } { puts "two" }
Вы не можете передать несколько блоков таким способом, но вы можете передать несколько объектов proc
или лямбда
:
irb(main):005:0> def foo(b1, b2)
irb(main):006:1> b1.call
irb(main):007:1> b2.call
irb(main):008:1> end
=> nil
irb(main):009:0> foo(Proc.new {puts 'one'}, Proc.new {puts 'two'})
one
two
=> nil
irb(main):010:0>
синтаксис в Ruby 1.9 намного симпатичнее:
foo ->{puts :one}, ->{puts :two}