Skip to content

Instantly share code, notes, and snippets.

@lasiltan
lasiltan / defnretryable.clj
Last active June 28, 2018 13:10
Clojure - retry function
(defmacro defnretryable [fname args & body]
`(def ~fname (fn ~args (loop [n# 5]
(when-not (neg-int? n#)
(if-let [result# (try [~@body]
(catch Exception e#
(if (zero? n#)
(throw e#)
(println "Retry " ~fname))))]
(last result#)
(recur (dec n#))))))))
@lasiltan
lasiltan / rabbitmq-spring.clj
Last active December 5, 2016 11:57
Spring AMQP RabbitMQ clojure
(ns packaging-api.rabbitmq.main
(:require [clojure.tools.logging :refer [debug info]]
[packaging-api.properties :refer [parse-property]]
[cheshire.core :as json]
[packaging-api.rabbitmq.consumers.package :as package]
[rabid.core :as rabid]
[ovp.schema.core :refer [schema-version]]
[clojure.walk :refer [keywordize-keys]])
(:import (org.springframework.amqp.rabbit.core RabbitTemplate ChannelAwareMessageListener RabbitAdmin)
(org.springframework.amqp.rabbit.connection CachingConnectionFactory)
@lasiltan
lasiltan / Json4sExtractSerializeExample.scala
Created February 11, 2016 12:35
json4s extract and serialize
import org.json4s.jackson.JsonMethods._
import org.json4s._
import org.json4s.jackson.Serialization
import org.json4s.jackson.Serialization.write
implicit val formats = Serialization.formats(NoTypeHints)
case class Foo(id: String, bar: Option[Bar])
case class Bar(id: String, foos: Option[Seq[Foo]])

Keybase proof

I hereby claim:

  • I am lasiltan on github.
  • I am lauri (https://keybase.io/lauri) on keybase.
  • I have a public key ASBLCufIoFDsTtZkSc-pV-b4ZMwjChWINNpL0rXLOL-sDgo

To claim this, I am signing this object: