2017-12-20 4 views
2

저는 Tarantool을 데이터베이스로 사용하고 Web API을 내 .Net 프로젝트에 사용합니다. 하지만 그 외에는 내장 된 Tarantool queues을 사용하고 싶지만 Tarantool queues (this, this 또는 this one)과 같은 어댑터를 찾을 수 없습니다. .Net을 사용하여 대기열 작업 문제를 해결할 수 있습니까?Tarantool 대기열 .Net

+0

현재 C# 드라이버가 대기열을 지원하는지 의심 스럽습니다. 당신은'await box.Call ("some_function")'을 사용하여 tarantool 측에서 루아 함수를 호출 할 수 있습니다. 매우 우아한 해결책은 아니지만 문제의 해결 방법이 될 수 있습니다. 이 포스트 [1], 특히 "초기화 스크립트 만들기"와 "루아 함수 호출하기"섹션을보십시오. [1] : https://hackernoon.com/using-tarantool-in-a-net-project-on-windows-2676253ce521 –

+0

@VladimirLebedev, 조언 해 주셔서 감사합니다. – iPhosgen

답변

2

다른 플랫폼에서 쉽게 액세스 할 수 있도록 간단한 ddsfdfd 대기열을 소비자로 액세스하기위한 간단한 웹 API를 구현했습니다. 나를 위해 그것은 가장 편리한 방법으로 밝혀졌습니다. 아래 조각과 같습니다.

local queue = require('queue') 

local function take_task(req) 
    local json = require('json') 
    local task = queue.tube.queue_name:take(15) 
    local resp = nil 
    if task ~= nil then 
     resp = req:render({ json = {task} }) 
     resp.status = 200 
    else 
     resp = req:render({ json = {task_id} }) 
     resp.status = 404 
    end 
    return resp 
end 

local server = require('http.server').new(nil, 9090, {app_dir='/etc/tarantool/instances.enabled/'}) 
server:route({ path = '/take_task' }, take_task) 
server:start()