Hello,
I'm wring a service that polls RSS feeds (using feedme). And I'd like to act
only on the new entries in each feed.
So far I have something like:
(defn get-new-entries [seen]
(let [seen? (complement seen)]
(filter #(seen? (:id %)) (get-entries))))
(defn poll [sleep-time]
(loop [seen #{}]
(let [entries (get-new-entries seen)]
(doall (map process-entry entries))
(println "================================")
(Thread/sleep sleep-time)
(recur (union seen (set (map :id entries)))))))
(Full demo code at https://gist.github.com/760094)
The problem is that "seen" will grow without bounds.
Is there a built in way to have some sort of LRU cache or should I use
external libraries (like plru)?
Thanks,
--
Miki
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to [email protected]
Note that posts from new members are moderated - please be patient with your
first post.
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en