It seems that you can create a Heroku "Worker" speaker that starts a plain old Java thread. For example, you might have a Clojure application with the -main function, which uses concurrency, i.e.
(defn -main [&args] (doseq [res (map deref [(future "task 1") (future "task 2") (future "task 3"])] (save-results res)))
Where save-results is an imaginary function that somewhere saves the results of your employee, sends an email no matter.
Please note that this is probably the best way to do this, i.e. Agents or one of the Clojure Schedule libraries listed on the Clojure Toolbar (i.e. quartzite). My example is a very simple (naive?) Example that proves concurrency in the working dynamics of Heroku.
See here for further discussion: https://groups.google.com/forum/#!topic/clojure/xQs6MqD3680
In addition, I found several blog posts / articles about running multiple threads on the same Heroku dinar. This limits you to something like 255 streams per dyno.
Update I created a proof of concept for the above:
https://github.com/noahlz/worker-sample
source share