intuit import button and sysco importing.
This commit is contained in:
42
src/clj/auto_ap/background/requests.clj
Normal file
42
src/clj/auto_ap/background/requests.clj
Normal file
@@ -0,0 +1,42 @@
|
||||
(ns auto-ap.background.requests
|
||||
(:require
|
||||
[amazonica.aws.sqs :as sqs]
|
||||
[config.core :refer [env]]
|
||||
[mount.core :as mount]
|
||||
[clojure.tools.logging :as log]
|
||||
[auto-ap.intuit.import :as i]
|
||||
[unilog.context :as lc]))
|
||||
|
||||
(def stopped? (atom false))
|
||||
|
||||
(defn process-1 []
|
||||
(let [[{:keys [message-id receipt-handle body]}] (:messages (sqs/receive-message {:queue-url (:requests-queue-url env)
|
||||
:count 1}))]
|
||||
(when message-id
|
||||
(log/infof "processing message %s with body %s" message-id body )
|
||||
(if (= ":intuit" body)
|
||||
(try
|
||||
(i/upsert-transactions)
|
||||
(catch Exception e
|
||||
(log/error e))))
|
||||
(sqs/delete-message {:queue-url (:requests-queue-url env)
|
||||
:receipt-handle receipt-handle} ))))
|
||||
|
||||
(defn fake-message []
|
||||
(sqs/send-message {:queue-url (:requests-queue-url env)
|
||||
:message-body ":intuit"} ))
|
||||
|
||||
(defn listen-sqs []
|
||||
(lc/with-context {:source "Request poller"}
|
||||
(loop []
|
||||
(process-1)
|
||||
(log/info "Checking SQS....")
|
||||
(Thread/sleep 5000)
|
||||
(when-not @stopped?
|
||||
(log/info "stopping")
|
||||
(recur)))))
|
||||
|
||||
(mount/defstate request-listener
|
||||
:start (future (listen-sqs))
|
||||
:stop (reset! stopped? true))
|
||||
|
||||
@@ -16,7 +16,9 @@
|
||||
[config.core :refer [env]]
|
||||
[datomic.api :as d]
|
||||
[unilog.context :as lc]
|
||||
[clj-time.core :as time]))
|
||||
[clj-time.core :as time]
|
||||
[mount.core :as mount]
|
||||
[yang.scheduler :as scheduler]))
|
||||
|
||||
(def bucket-name (:data-bucket env))
|
||||
|
||||
@@ -130,10 +132,10 @@
|
||||
))
|
||||
keys))]
|
||||
(log/infof "Imported %d invoices" (/ (count (:tempids result)) 2)))
|
||||
#_(doseq [k keys]
|
||||
(doseq [k keys]
|
||||
(mark-key k)))))
|
||||
|
||||
|
||||
(mount/defstate sysco-invoice-importer
|
||||
:start (scheduler/every (* 1000 60 60) import)
|
||||
:start (scheduler/every (* 1000 60 60) import-sysco)
|
||||
:stop (scheduler/stop sysco-invoice-importer))
|
||||
|
||||
Reference in New Issue
Block a user