我正在尝试更换一个小的本土消息传递系统,并且正在玩zmq.我将需要检测慢速读取器,并启动/断开它们 - 慢速读取器几乎意味着特定的消费者队列大小超过某个阈值.
到目前为止,似乎zmq会阻止每个消费者,如果其中一个消费者有点慢(足够公平) - 但我找不到任何方法来检测潜在的慢消费者.任何人都有任何经验,如何使用zmq - 或者有任何其他无经纪人的消息传递系统来重新推荐?
我需要使用客户端通道定义表更改C++代码以与WebSphere MQ连接.在Windows 2003和v6.0上有大约5000多个MQ客户端和10个MQ服务器.如果有人使用C++和CCDT,请帮助我.
eBay如何结束拍卖并标记获胜者?假设数据库中有一个拍卖结束日期,一旦该时间超过当前时间,拍卖需要关闭,标记获胜者等.在sql 2005中如何处理这样的事情?他们每秒查询数据库以找到过期的拍卖吗?显然,他们需要在拍卖结束后立即将其标记为关闭.他们无法为每次拍卖创建sql作业,或者是他们?有任何想法吗?我有一个遵循类似思维过程并需要帮助的集成.
这个问题是关于Android上的事件处理.它不是特定于c ++.
我需要处理UI/OS事件,而不是在处理完所有事件时阻塞.
原因是我移植的应用程序非常大,不能轻易地重写以处理工作线程上的自己的东西.相反,应用程序引擎要求在长期操作期间处理UI/OS事件,否则这些操作将被阻止.
我发现ALooper_pollAll(...)不会为我这样做.例如,如果我在我的活动中创建一个对话框并开始一个长操作,ALooper_pollAll()将不会使我的对话框出现 - 它只会在我返回主循环时显示(我在onNativeWindowCreated中对此进行了测试).
我发现几乎可以解决的唯一解决方案是在UI线程上执行内部循环,通过JNI调用以下代码:
public class MyActivity extends NativeActivity {
private Handler _uiEventsHandler = null;
private Runnable _uiEventsTask = new Runnable() {
public void run() {
Looper looper = Looper.myLooper();
looper.quit();
_uiEventsHandler.removeCallbacks(this);
_uiEventsHandler = null;
}
};
public void ProcessEvents(int timeout)
{
if (_uiEventsHandler==null) {
Looper looper = Looper.myLooper();
_uiEventsHandler = new Handler(looper);
_uiEventsHandler.removeCallbacks(_uiEventsTask);
//_uiEventsHandler.postDelayed(_uiEventsTask,timeout);
_uiEventsHandler.post(_uiEventsTask);
try {
looper.loop();
} catch (RuntimeException re) {
// We get an exception when we try to quit the loop, …Run Code Online (Sandbox Code Playgroud) 我目前正在尝试开发一个基于Firemonkey的项目.我正在使用Firemonkey的UI功能,因为该项目由许多较小的应用程序组成,每个应用程序都有一个3D方面.我目前只使用FMX框架开发/部署到Windows,但可能会在以后跨平台.
通过在后台构建VCL Windows应用程序来执行非常具体的操作,然后构建FMX前端,我遇到了大多数问题.但是,这仅适用于您只想执行应用程序以执行其设计的操作,因此可以使用参数执行应用程序.在其中一个应用程序中,我发现需要使用消息(或类似的东西).例如,在我的FMX应用程序中,如果我单击"button1",我希望它向后台VCL应用程序发送消息以执行"action1",而不是使用参数执行它.
一个很好的例子可能是在后台应用程序中使用VCL TMediaPlayer,前端FMX应用程序用于显示信息并提供播放,暂停等控制.这样它基本上就成为具有VCL功能的FMX UI.
到目前为止,我还没有找到任何关于消息的信息(例如在VCL中,用"SendMessage"或"PostMessage"或类似的东西完成)是通过Firemonkey处理的,可以通过本地帮助文件,也可以通过广泛的谷歌搜索.我发现的所有内容都与电子邮件有关(大概是因为我的大多数搜索术语中都有"消息"这个词).
Can anyone point me in the right direction on how messages would be handled with Firemonkey/FMX?
此致,Scott Pritchard
场景: 我们有多个地理位置分布的节点,我们希望队列收集该位置的消息.然后我们希望将收集到的数据从每个节点中的每个队列发送到中心位置的相应队列.在中心节点,我们将提取队列中收集的数据(来自其他节点),处理它并持久存储它.
约束:
我们的解决方案 我们已经考虑了几个解决方案,其中我将列出我们认为最好的解决方案.一种可能的解决方案(我们认为)是使用Redis来维护各处的队列,因为Redis提供持久存储.然后可能在所有地理上分离的节点上运行一个守护进程,该守护进程从队列中读取数据并将其发送到中央节点.接收数据的中心节点向它接收数据的节点发送ACK(因为数据对我们非常重要),然后在接收到ACK时,节点从队列中删除数据.当然,将存在必须接收ACK的超时时段.
问题 上面提到的解决方案(根据我们)可以正常工作,但问题是我们不想自己实现整个同步协议,原因很简单,我们可能在这里错了.我们无法在Redis中找到这种特殊的同步方式.因此我们对其他基于AMQP的队列开放,如RabbitMQ,ZeroMQ等.我们再次无法弄清楚我们是否可以使用这些解决方案来实现这一目标.
我正在重构一个将进行大量计算的分析系统,我需要一些关于可能的架构设计的想法,以解决我面临的数据一致性问题.
当前架构
我有一个基于队列的系统,其中不同的请求应用程序创建最终由工作者使用的消息.
每个" 请求应用程序 "将大型计算细分为较小的部分,这些部分将被发送到队列并由工作人员处理.
当所有部分都完成后,原始的"请求应用程序"将合并结果.
此外,工作者使用来自集中式数据库(SQL Server)的信息来处理请求(重要:工作人员不会更改数据库上的任何数据,只会消耗它).

问题
好.到现在为止还挺好.当我们包含更新数据库信息的Web服务时,就会出现问题.这可能在任何时候发生,但至关重要的是,源自相同"请求应用程序"的每个"大计算"在数据库上看到相同的数据.
例如:
我不能让工人W2使用数据库的状态S1.为了使整个计算保持一致,它应该使用先前的S0状态.
思考
一种锁定模式,用于防止Web服务器在工作者消耗数据时更改数据库.
在数据库和worker(通过req.app控制db缓存的服务器)之间创建新层
我正在等待第二个解决方案,但对此并不十分自信.
有什么好主意吗?我设计错了,还是错过了什么?
OBS:
architecture sql-server distributed message-queue distributed-caching
使用RabbitMQ我正在做类似的事情:
channel.QueueDeclare(QueueName, true, false, false, null);
Run Code Online (Sandbox Code Playgroud)
默认情况下,如果现有名称与提供的名称不匹配,RabbitMQ将创建新队列.我想抛出异常.那可能吗?
谢谢
应用程序将日志从许多机器发送到Amazon Cloud,并将它们存储在某个数据库中。
> Lets assume: one machine log size: 1kB every 10 seconds, num of machines from
1000 to 5000
Run Code Online (Sandbox Code Playgroud)
我的第一种方法是将日志在Rabbitmq中排队,然后Rabbitmq使用者将其存储在sql数据库中。
第二种方法是将日志在Rabbitmq中排队,但将其存储在mongodb中
我想了解使用消息的最佳做法。我已经阅读过MassTransit文档,并且已经在搜索有关此内容,但我无法得出任何结论。
我有一个发布消息的api(托管总线实例)。这些消息是多种多样的,因为此api不是微服务(用于购买,销售等的消息)。
我该如何组织我的消费者/队列?
message-queue ×10
rabbitmq ×4
zeromq ×2
amqp ×1
android ×1
architecture ×1
c# ×1
c++ ×1
delphi ×1
delphi-xe2 ×1
distributed ×1
events ×1
firemonkey ×1
ibm-mq ×1
looper ×1
masstransit ×1
messaging ×1
mongodb ×1
redis ×1
servicebus ×1
sql ×1
sql-server ×1