Chuyển tới nội dung chính

Di chuyển phần tử hàng đợi theo cách nguyên tử (LCC.kvdb.queue.move)

Khai báo​

value, err = LCC.kvdb.queue.move(from_name, pop?, to_name, push?, timeout?)

Tham số​

  • from_name
    Kiểu chuỗi, tên hàng đợi nguồn (không được rỗng, tối đa 256 byte)
  • pop
    Kiểu chuỗi, tùy chọn; đầu lấy phần tử ra khỏi hàng đợi nguồn, "front" hoặc "back", mặc định là "front"
  • to_name
    Kiểu chuỗi, tên hàng đợi đích (không được rỗng, tối đa 256 byte)
  • push
    Kiểu chuỗi, tùy chọn; đầu đưa phần tử vào hàng đợi đích, "front" hoặc "back", mặc định là "back"
  • timeout
    Kiểu số, tùy chọn; thời gian chờ yêu cầu (giây), mặc định là 60

Giá trị trả về​

  • value
    Kiểu chuỗi, phần tử đã được di chuyển; là nil khi hàng đợi nguồn rỗng
  • err
    Kiểu chuỗi hoặc nil, trả về 'not found' khi thất bại hoặc hàng đợi nguồn rỗng

Mô tả​

Lấy một phần tử ra khỏi hàng đợi nguồn và đưa vào hàng đợi đích theo cách nguyên tử.
Phù hợp để triển khai việc chuyển giao tác vụ theo cơ chế chiếm quyền, tránh tranh chấp đồng thời.
Khi hàng đợi nguồn rỗng, trả về nil, 'not found'.

Ví dụ​

local value, err = LCC.kvdb.queue.move("Đang chờ xử lý", "front", "Đang xử lý", "back")
if value then
print("Nhận tác vụ:", value)
end