记录pulse 发送时候card 运行失败记录到数据库中

记录pulse 发送时候card 运行失败记录到数据库中,在如下代码中

(s/defn ^:private render-pulse-card-body :- common/RenderedPulseCard
  [render-type timezone-id :- (s/maybe s/Str) card {
    
    :keys [data error], :as results}]
  (log/info (.toString (.getClass card))  (.toString  card))
    (log/info (.toString (.getClass render-type))  (.toString  render-type))
 ;  (log/info (.toString (.getClass :as))  (.toString  :as))
  (log/info (str (:id card)) "---" (:name  card))
  (

  try
    (when error
      (throw (ex-info (tru "Card has errors: {0}" error) results)))
    (let [chart-type (or (detect-pulse-chart-type card data)
                         (when (is-attached? card)
                           :attached)
                         :unknown)]
      (log/info (trs "Rendering pulse card with chart-type {0} and render-type {1}" chart-type render-type))
      (body/render chart-type render-type timezone-id card data))
;;      (body/render :bar render-type timezone-id card data))
    (catch Throwable e
    		(db/insert! pulse_card_task_failure/CardFailure
          :fail_at   (java-time/instant (System/currentTimeMillis))
          :card_id   (:id card) 
          :fail_details (.getMessage e)
          )
      (log/error e (trs "Pulse card render error"))
      (body/render :error nil nil nil nil))))

增加以下代码

	(db/insert! pulse_card_task_failure/CardFailure
          :fail_at   (java-time/instant (System/currentTimeMillis))
          :card_id   (:id card) 
          :fail_details (.getMessage e)
          )

增加如下文件

(ns metabase.models.pulse_card_task_failure
  (:require [toucan
             [db :as db]
             [models :as models]]))
(models/defmodel CardFailure :pulse_card_task_failure)

猜你喜欢

转载自blog.csdn.net/weixin_40455124/article/details/110004780
今日推荐