- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
zmq
的某些部分未以可预测的方式运行。
我正在使用 VS2013 和 zmq 3.2.4。为了不在我的 pubsub 框架中“丢失”消息 [旁白:我认为这是一个设计缺陷。我应该能够首先启动我的订阅者,然后是发布者,我应该会收到所有消息] 我必须将发布者与订阅者同步到 la durapub/durasub等。我正在使用 zeromq 指南中的 durasub.cpp 和 durapub.cpp 示例。如果我按原样使用示例,系统将完美运行。
如果我现在在 durasub.cpp 中的 ZMQ_PUSH
周围添加范围括号
{
zmq::socket_t sync (context, ZMQ_PUSH);
sync.connect(syncstr.c_str());
s_send (sync, "sync");
}
系统停止工作。匹配的“ZMQ_PULL”信号永远不会到达 durapub.cpp 中的应用层。
我已经通过 C++ 包装器检查了 zmq_close
的返回值,一切正常。就 ZMQ 而言,它已将消息传递到端点。希望我做了一些明显愚蠢的事情?
还有更多。添加
std::this_thread::sleep_for(std::chrono::milliseconds(1));
允许系统(即发布/订阅)重新开始工作。所以这显然是一个竞争条件,大概是在收割者线程中,因为它破坏了套接字。
更多的挖掘。我认为 LIBZMQ-179 也提到了这个问题。
EDIT#2 2014-08-13 03:00 [UTC+0000]
Publisher.cpp:
#include
#include
#include
int main (int argc, char *argv[])
{
zmq::context_t context(1);
std::string bind_point("tcp://*:5555");
std::string sync_bind("tcp://*:5554");
zmq::socket_t sync(context, ZMQ_PULL);
sync.bind(sync_bind.c_str());
// We send updates via this socket
zmq::socket_t publisher(context, ZMQ_PUB);
publisher.bind(bind_point.c_str());
// Wait for synchronization request
std::string tmp = s_recv (sync);
std::cout << "Recieved: " << tmp << std::endl;
int numbytessent = s_send (publisher, "END");
std::cout << numbytessent << "bytes sent" << std::endl;
}
订阅者.cpp
#include
#include
#include
int main (int argc, char *argv[])
{
std::string connectstr("tcp://127.0.0.1:5555");
std::string syncstr("tcp://127.0.0.1:5554");
zmq::context_t context(1);
zmq::socket_t subscriber (context, ZMQ_SUB);
subscriber.setsockopt(ZMQ_SUBSCRIBE, "", 0);
subscriber.connect(connectstr.c_str());
#if ENABLE_PROBLEM
{
#endif ENABLE_PROBLEM
zmq::socket_t sync (context, ZMQ_PUSH);
sync.connect(syncstr.c_str());
s_send (sync, "sync");
#if ENABLE_PROBLEM
}
#endif ENABLE_PROBLEM
while (1)
{
std::cout << "Receiving..." << std::endl;
std::string s = s_recv (subscriber);
std::cout << s << std::endl;
if (s == "END")
{
phá vỡ;
}
}
}
如果定义了ENABLE_PROBLEM
:
如果未定义ENABLE_PROBLEM
:
1 Câu trả lời
EDIT#1 2014-08-11:原始帖子已更改,没有留下可见的修订
恕我直言,仅从上述三个 SLOC 中分离目标并模拟任何通过/失败测试以验证目标是非常困难的。
那么让我们一步步开始吧。
待定
编辑#1 后:ZMQ_PUSH
+ ZMQ_PULL
+ ( 隐藏ZMQ_PUB
+ ZMQ_SUB
... 下次宁愿发布 ProblemDOMAIN-context-complete 源,最好用 self-测试用例输出相似:
...
// -debug-isolation-framing ------------------------------------------------
std::cout << "---[Pre-test]: sync.connect(syncstr.c_str()) argument" << std::endl;
std::cout << syncstr.c_str() << std::endl;
std::cout << "---[Use/exec]: " << std::endl;
sync.connect( syncstr.c_str());
// -debug-isolation-framing ------------------------------------------------
...
)
待定
post-EDIT#1:n.b.:ZMQ_LINGER 相当影响资源的 .close()
,这可能在 ZMQ_Context 之前发生终止出现。 (并且可能会阻塞......这会伤害......)
một lần Context
即将终止,而发送队列尚未为空并且正在处理对 zmq_close()
的尝试,此参数就会生效.
在大多数体系结构中(......在低延迟/高性能中更多,其中微秒和纳秒计数......)(共享/受限)资源设置/处置操作出现的原因有很多 在系统生命周期的最开始,hoặc。不用多说为什么,想象一下与所有设置/丢弃操作直接相关的开销,这些开销在近乎真实的常规操作流程中根本不可能发生(重复发生的次数越少......)时间系统设计。
因此,让系统进程进入最后的“整理”阶段(就在退出之前)
cài đặt ZMQ_LINGER == 0
只是忽略仍在<sender>> 队列中的任何内容,并允许提示 zmq_close ()
+ zmq_term()
类似地,ZMQ_LINGER == -1
将仍在<发件人> 队列中的任何内容放入[ 具有最大值(value)],整个系统必须无限期等待,在(希望任何)<接收者> 在允许任何 zmq_close()
+ zmq_term()
发生之前检索并“消费”所有排队的消息...这可能会很长并且完全不受您的控制...
最后,ZMQ_LINGER > 0
作为一种折衷方案,如果某些<接收器> 等待定义的 [msec]-s 数量来并检索排队的消息。然而,在给定的 TimeDOMAIN 里程碑上,系统会继续执行 zmq_close()
+ zmq_term()
以优雅干净地释放所有保留资源并根据系统设计时间退出约束条件。
关于c++ - ZeroMQ 推/拉,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25195242/
Tôi đang cố gắng sử dụng tập lệnh jQuery để trích xuất url từ liên kết được nhấp và sau đó chèn vào thẻ video của tôi. Có gợi ý nào không? Tôi đã thử ghép những gì tôi nhận được từ .html(), nhưng dấu ngoặc kép luôn bị sai.
Tôi đang gặp vấn đề với docker. Kịch bản như sau: chúng ta sử dụng Codebuild+Packer+docker để tạo AMI cho việc triển khai. Trong bước này, chúng tôi kéo hình ảnh từ Artifactory và ngoài việc trích xuất
Hiện tại tôi đang học RxJS. Trong tài liệu tôi tìm thấy mảng này. Tôi đã thử tìm kiếm trên Google "kéo và đẩy javascript" nhưng tôi thậm chí không biết cách gọi những thực thể/khái niệm này. Tôi không hiểu điều đó có nghĩa là gì? Tôi cho rằng S
Tiêu đề Trên màn hình nhỏ, tôi cần tiêu đề trước rồi mới đến trường văn bản, nhưng trên màn hình trung bình trở lên, tôi cần ngược lại - Tôi đã thử đẩy và kéo nhưng không hiệu quả - Bạn có ý tưởng nào không? Câu trả lời tốt nhất dựa trên Swa
Một số phần của ZeroMQ không hoạt động theo cách có thể dự đoán được. Tôi đang sử dụng VS2013 và zmq 3.2.4. Để không "mất" tin nhắn trong khuôn khổ pubsub của tôi [Ngoài lề: Tôi nghĩ đây là một lỗi thiết kế. Tôi có thể bắt đầu thuê bao của tôi đầu tiên
Tôi đang viết một trang sử dụng các cột Bootstrap lồng nhau. Tôi đang sử dụng tính năng đẩy/kéo để các cột đổi vị trí trên thiết bị di động và nó hoạt động rất tốt. Tuy nhiên, trên máy tính để bàn, tôi gặp phải một số vấn đề kỳ lạ về khoảng cách. Các cột lồng nhau được dịch chuyển về bên phải của cột cha. Tôi thiết lập một fidd
Tôi gặp lỗi này khi kéo một số hình ảnh docker (nhưng không phải tất cả): không đăng ký được lớp: Lỗi khi xử lý tệp tar (trạng thái thoát 1): op
Tôi đã tạo một cụm Kubernetes và cài đặt docker trên mỗi nút. Khi tôi cố gắng kéo hoặc đẩy hình ảnh bằng lệnh docker push local_registry_addr:port/image_id
Nếu không đẩy/kéo từng dấu trang riêng lẻ một cách rõ ràng, khi nào dấu trang được sao chép/cập nhật từ/vào kho lưu trữ? Trong quá trình thử nghiệm hai kho lưu trữ cục bộ, tôi không thể suy ra hành vi nhất quán. Đôi khi thao tác đẩy/kéo từ A đến B hoặc từ B đến A sẽ sao chép/cập nhật dấu trang, đôi khi thì không.
Trong tài liệu Bootstrap 3, họ đưa ra các hướng dẫn sau để thay đổi thứ tự cột bằng cách sử dụng các lớp đẩy và kéo (http://getbootstrap.com/css/#grid-column-ordering)
Từ câu hỏi này Bố cục Bootstrap ba cột với thanh bên trái ở phía dưới, tôi đã học được về cách đẩy và kéo cột Bootstrap. Đoạn mã sau đây gần như mang lại cho tôi những gì tôi muốn
Chữ ký của nhiều hàm Repo bao gồm **kwargs, tài liệu cho biết hàm này cho phép bạn truyền đối số cho lệnh git được gói bên dưới. Tuy nhiên, *args không có vị trí. Để truyền các đối số giống như cờ, như --all. Tôi nghĩ họ sẽ giống như my_r
Điều này thực sự khó chịu nếu bạn đẩy/kéo một tập tin lớn vào thiết bị và bây giờ không biết nó cách xa bao nhiêu. Có thể chạy adb push hoặc adb pull và nhận được thanh tiến trình bằng tiện ích "bar" không? Vấn đề chính ở đây là tôi nghĩ adb cần hai
Khi tôi thử đẩy/kéo tới/từ Heroku bằng Gitkrakent, GitKraken trả lời tôi: "Vui lòng đăng nhập để tiếp tục" "Người dùng/đăng nhập" của yêu cầu là gì? (Cá nhân tôi
Tôi có Jenkins 2.150.1 trong một container docker. Để cài đặt Jenkins này, tôi chỉ cần sử dụng hình ảnh jenkinsci/blueocean:1.9.0. Tôi đã tạo ra một đường ống và sau đó cố gắng sử dụng
Tôi muốn sử dụng Jenkins để thực hiện bước tiếp theo: 1- docker pull 2- docker run -i -t Tôi đã cài đặt plugin docker trên jenkins, nhưng liệu có thể thực hiện được không? trình cắm docker
Nếu tôi đang làm việc trên một số tập tin mà tôi không muốn cam kết, tôi chỉ cần lưu chúng lại. Sau đó, tôi có các tệp khác mà tôi muốn đẩy lên máy chủ, nhưng nếu người khác đã thực hiện thay đổi đối với kho lưu trữ và tôi kéo chúng xuống, máy chủ sẽ yêu cầu tôi hợp nhất hoặc thay đổi cơ sở... nhưng không có tùy chọn nào trong số này
Vì lý do nào đó, hình ảnh tôi đang cố gắng sử dụng không tải được khi tôi chia sẻ liên kết trên FB. Lỗi chính xác được đưa ra là: Đã cung cấp og:image nhưng không thể tải xuống. Điều này có thể xảy ra vì nhiều lý do, chẳng hạn như máy chủ của bạn sử dụng mã hóa nội dung không được hỗ trợ. Trình thu thập thông tin chấp nhận
Hôm nay tôi đã mua một chiếc Samsung Galaxy Note 3, chạy hệ điều hành Android 4.3. Vì nó quá mới nên tôi không tìm được cách root thiết bị, nên tôi đã thử kết nối bằng adb... nhưng không được. Vì vậy, tôi đã sử dụng D:\android
Tôi thử kiểm tra 2 tác vụ thông qua lệnh kiểm tra cli của Airflow. Tác vụ đầu tiên chạy, tự động đẩy bảng điều khiển cuối cùng đến xcom và tôi thấy giá trị nào đó trong GUI Airflow như mong đợi. Khi tôi vượt qua
Tôi là một lập trình viên xuất sắc, rất giỏi!