Prechádzať zdrojové kódy

Started rewriting the queue.

default 3 rokov pred
rodič
commit
0233d73248
1 zmenil súbory, kde vykonal 19 pridanie a 6 odobranie
  1. 19 6
      data.c

+ 19 - 6
data.c

@@ -1318,19 +1318,32 @@ static xs_dict *_enqueue_put(const char *fn, xs_dict *msg)
 }
 
 
-void enqueue_input(snac *snac, char *msg, char *req, int retries)
-/* enqueues an input message */
+static xs_dict *_new_qmsg(const char *type, const xs_dict *msg, int retries)
+/* creates a queue message */
 {
     int qrt  = xs_number_get(xs_dict_get(srv_config, "queue_retry_minutes"));
     xs *ntid = tid(retries * 60 * qrt);
-    xs *fn   = xs_fmt("%s/queue/%s.json", snac->basedir, ntid);
-    xs *qmsg = xs_dict_new();
     xs *rn   = xs_number_new(retries);
 
-    qmsg = xs_dict_append(qmsg, "type",    "input");
+    xs_dict *qmsg = xs_dict_new();
+
+    qmsg = xs_dict_append(qmsg, "type",    type);
     qmsg = xs_dict_append(qmsg, "message", msg);
-    qmsg = xs_dict_append(qmsg, "req",     req);
     qmsg = xs_dict_append(qmsg, "retries", rn);
+    qmsg = xs_dict_append(qmsg, "ntid",    ntid);
+
+    return qmsg;
+}
+
+
+void enqueue_input(snac *snac, char *msg, char *req, int retries)
+/* enqueues an input message */
+{
+    xs *qmsg   = _new_qmsg("input", msg, retries);
+    char *ntid = xs_dict_get(qmsg, "ntid");
+    xs *fn     = xs_fmt("%s/queue/%s.json", snac->basedir, ntid);
+
+    qmsg = xs_dict_append(qmsg, "req", req);
 
     qmsg = _enqueue_put(fn, qmsg);