我的应用程序连接到rabbitMQ.有时候,它会抛出一个AMQPTimeoutException.更具体地说" 发送数据时出错.套接字连接超时 ".
我的解决方案
我正在捕获AMQPTimeoutException并调用我的重新连接方法.之后程序继续正常执行.此外,我设置了一个标志,以便异常最多处理3次.
try
{
sendMethod($message);
} catch (AMQPTimeoutException $e) {
echo "caught socket connection exception". "\n";
$this->reconnect($message, $exchangeName, $queue);
}
//reconnect internally checks the flag
Run Code Online (Sandbox Code Playgroud)
我的问题:这是最佳做法吗?如果不是其他可能的解决方案?
注意:该应用程序是用PHP编写的.
示例:从 php v4 生成的 Uuid :
8bc278cb-2fb6-413b-add6-8ba39bf830e8
我想将其转换为两个 64 位整数。
我尝试过使用hexdecphp 但它的返回值是数字。我想要整数数据类型。
有趣的是 :
我尝试将 hexdec 与上述 uuid 一起使用,并将此输出用于 dechex。有些怎么样,没有得到相同的值?
任何对此的见解将不胜感激。
我必须使用nodejs在mongodb中插入大约10,00000个文档.
我正在使用for循环生成这些文档,然后将它们存储到数组中,最后将它们插入到mongodb中.
var codeArray = new Array();
for (var i = 0; i<1000000; i++){
var token = strNpm.generate();
var now = moment().format('YYYYMMDD hhmmss');
var doc1 = {id:token,
Discount_strId:"pending",
Promotion_strCode:token,
Promotion_strStatus:"I",
Promotion_dtmGeneratedDate:now,
User_strLogin:"test",
Promotion_strMode:"S",
Promotion_dtmValidFrom:"pending",
Promotion_dtmValidTill:"pending",
LastModified_dtmStamp:now
};
codeArray.push(doc1);
db.collection('ClPromoCodeMaster').insert(codeArray, function (err, result) {
if (err){
console.log(err);
}else{
console.log('Inserted Records - ', result.ops.length);
}
});
Run Code Online (Sandbox Code Playgroud)
我面临的问题是mongo的插入限制是16mb,所以我不能一次插入整个数组.请建议最佳解决方案.