576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
|
(conc qrykey " " host-port)))))
(else (conc qrykey " BADDATA"))))
;; for work items:
;; handler is one of; immediate, read-only, read-write, high-priority
((immediate read-only normal low-priority) ;; do this work immediately
;; host-port (caller), pid (caller), qrykey (cookie), params <= all from first line
;; data => a single line encoded however you want, or should I build json into it?
(let* ((pdat (get-peer-dat udata host-port)))
(match params ;; dbfile prockey procparam
((dbfile prockey procparam)
(case (string->symbol handlerkey)
((immediate read-only)
(process-request udata pdat dbfile qrykey prockey procparam data))
((normal low-priority) ;; split off later and add logic to support low priority
(add-to-work-queue udata pdat dbfile qrykey prockey procparam data))
(else
#f)))
(else (print "ERROR: params=" params)))))
(else
;; (add-to-work-queue udata (get-peer-dat udata host-port) handlerkey qrykey data)
#f)))
(else
(print "BAD DATA? controldat=" controldat " data=" data)
#f)));; handles the incoming messages and dispatches to queues
|
>
|
>
|
>
|
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
|
(conc qrykey " " host-port)))))
(else (conc qrykey " BADDATA"))))
;; for work items:
;; handler is one of; immediate, read-only, read-write, high-priority
((immediate read-only normal low-priority) ;; do this work immediately
;; host-port (caller), pid (caller), qrykey (cookie), params <= all from first line
;; data => a single line encoded however you want, or should I build json into it?
(print "handlerkey=" handlerkey)
(let* ((pdat (get-peer-dat udata host-port)))
(match params ;; dbfile prockey procparam
((dbfile prockey procparam)
(case handlerkey
((immediate read-only)
(process-request udata pdat dbfile qrykey prockey procparam data))
((normal low-priority) ;; split off later and add logic to support low priority
(add-to-work-queue udata pdat dbfile qrykey prockey procparam data))
(else
#f)))
(else
(print "INFO: params=" params " handlerkey=" handlerkey " controldat=" controldat)
#f))))
(else
;; (add-to-work-queue udata (get-peer-dat udata host-port) handlerkey qrykey data)
#f)))
(else
(print "BAD DATA? controldat=" controldat " data=" data)
#f)));; handles the incoming messages and dispatches to queues
|