{"action":"created","issue":{"url":"https://api.github.com/repos/ironsmile/nedomi/issues/12","labels_url":"https://api.github.com/repos/ironsmile/nedomi/issues/12/labels{/name}","comments_url":"https://api.github.com/repos/ironsmile/nedomi/issues/12/comments","events_url":"https://api.github.com/repos/ironsmile/nedomi/issues/12/events","html_url":"https://github.com/ironsmile/nedomi/issues/12","id":83092514,"number":12,"title":"Cache expiration mechanism","user":{"login":"ironsmile","id":50431,"avatar_url":"https://avatars.githubusercontent.com/u/50431?v=3","gravatar_id":"","url":"https://api.github.com/users/ironsmile","html_url":"https://github.com/ironsmile","followers_url":"https://api.github.com/users/ironsmile/followers","following_url":"https://api.github.com/users/ironsmile/following{/other_user}","gists_url":"https://api.github.com/users/ironsmile/gists{/gist_id}","starred_url":"https://api.github.com/users/ironsmile/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ironsmile/subscriptions","organizations_url":"https://api.github.com/users/ironsmile/orgs","repos_url":"https://api.github.com/users/ironsmile/repos","events_url":"https://api.github.com/users/ironsmile/events{/privacy}","received_events_url":"https://api.github.com/users/ironsmile/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":{"url":"https://api.github.com/repos/ironsmile/nedomi/milestones/1","html_url":"https://github.com/ironsmile/nedomi/milestones/Alpha%201","labels_url":"https://api.github.com/repos/ironsmile/nedomi/milestones/1/labels","id":1141687,"number":1,"title":"Alpha 1","description":"We want nedomi to be stable and have [this set of features](https://github.com/ironsmile/nedomi/wiki/alpha-1).","creator":{"login":"ironsmile","id":50431,"avatar_url":"https://avatars.githubusercontent.com/u/50431?v=3","gravatar_id":"","url":"https://api.github.com/users/ironsmile","html_url":"https://github.com/ironsmile","followers_url":"https://api.github.com/users/ironsmile/followers","following_url":"https://api.github.com/users/ironsmile/following{/other_user}","gists_url":"https://api.github.com/users/ironsmile/gists{/gist_id}","starred_url":"https://api.github.com/users/ironsmile/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ironsmile/subscriptions","organizations_url":"https://api.github.com/users/ironsmile/orgs","repos_url":"https://api.github.com/users/ironsmile/repos","events_url":"https://api.github.com/users/ironsmile/events{/privacy}","received_events_url":"https://api.github.com/users/ironsmile/received_events","type":"User","site_admin":false},"open_issues":12,"closed_issues":0,"state":"open","created_at":"2015-05-31T12:50:38Z","updated_at":"2015-05-31T13:47:08Z","due_on":null,"closed_at":null},"comments":1,"created_at":"2015-05-31T13:44:39Z","updated_at":"2015-06-05T11:41:40Z","closed_at":null,"body":"Normally cached files must be stored for a limited period of time. A mechanism should be created for making sure files will be purged from the storage after their expiration time have been reached.\r\n\r\nIdeally, all cache modules should be able to share the same cache expiration code. If this proves to be impossible we will have to implement it in every cache module individually.\r\n\r\nFor the moment I am thinking of a type which only job is to keep track of expiration times and emit expiration events when such a time is reached."},"comment":{"url":"https://api.github.com/repos/ironsmile/nedomi/issues/comments/109266379","html_url":"https://github.com/ironsmile/nedomi/issues/12#issuecomment-109266379","issue_url":"https://api.github.com/repos/ironsmile/nedomi/issues/12","id":109266379,"user":{"login":"MStoykov","id":312246,"avatar_url":"https://avatars.githubusercontent.com/u/312246?v=3","gravatar_id":"","url":"https://api.github.com/users/MStoykov","html_url":"https://github.com/MStoykov","followers_url":"https://api.github.com/users/MStoykov/followers","following_url":"https://api.github.com/users/MStoykov/following{/other_user}","gists_url":"https://api.github.com/users/MStoykov/gists{/gist_id}","starred_url":"https://api.github.com/users/MStoykov/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MStoykov/subscriptions","organizations_url":"https://api.github.com/users/MStoykov/orgs","repos_url":"https://api.github.com/users/MStoykov/repos","events_url":"https://api.github.com/users/MStoykov/events{/privacy}","received_events_url":"https://api.github.com/users/MStoykov/received_events","type":"User","site_admin":false},"created_at":"2015-06-05T11:41:40Z","updated_at":"2015-06-05T11:41:40Z","body":"I remember [time.Timer](http://golang.org/pkg/time/#Timer) was pretty efficient. A tiny little bit of wrapping should be enough ?"}}