2017-02-16 2 views
-1

私はarray = [element1, element2, element3]のクラスを持っています。私はelement1 = 1selement2 = 5selement3 = 7sの期限を同時に設定しました。 これは、1秒後に配列が[element2, element3] 5秒後に変更されることを意味します。[element3]の場合、7秒後に空の配列になります。私たちはこれをどうやって行えるの? Redis expire key 30ttl keyに設定した方法が似ています。ルビーで特定の時間後に変数を期限切れにする

+3

はい、あります。これは、どれくらいの時間が経過したのかを確認するコードを書いて、 'nil'をそれらに割り当てます。私はあなたがコードで話していることをやる理由を見たことがありません。代わりに、私は時間が切れた場合、それらの変数の使用を必要とする何かを拒否したいと思います。 –

+0

私は詳細について質問を編集しています。 –

答えて

0

ルビにはこの機能が組み込まれておらず、状況に応じてさまざまなデータ構造を実装することができます。ここで

は単純な例です:もちろん

class Ephemarray 
    def initialize 
    @array = [] 
    end 

    def [] index 
    return nil if @array[index].nil? 
    return @array[index] = nil if (Time.now - @array[index][2] > @array[index][1]) 
    return @array[index][0] 
    end 

    def []= index, expiry, value 
    @array[index] = [value, expiry, Time.now] 
    end 

end 

e = Ephemarray.new 
e[0, 4] = 'blah' 

、あなたは常にgem install redis Cでこの問題を解決できます。

関連する問題