我使用rabbitmq隊列從控制器獲取數據,然後消費者服務處理數據並使用php-excel生成Excel表。數據被覆蓋rabbitmq excel
我面臨的問題是,如果只有一個用戶運行,數據在Excel表中被覆蓋。如果我運行多個消費者,則問題大部分已解決。
我正在使用directm作爲rabbitmq類型和luiggio excel bundle for symfony2。
有沒有人有類似的問題?歡迎任何關於可能的問題的提示。
的消費者代碼//部分
public function execute(AMQPMessage $msg)
{
$data = array();
$data = unserialize($msg->body);
if ($data['type'] == 'sometype') {
$this->excel->excelObj->getProperties()->setCreator("something");
$value = $this->excel->excelObj->setActiveSheetIndex(0);
$value->setCellValue('A1', 'Some Number');
$value->setCellValue('B1', 'Some Other Number');
$incr = 2;
foreach ($data['somedata'] as $datum) {
value->setCellValue('A'.$incr, $datum['that_number']);
value->setCellValue('B'.$incr, $datum['that_number']);
}
} else if ($data['type'] == 'sometype2') {
$this->excel->excelObj->getProperties()->setCreator("something");
$value = $this->excel->excelObj->setActiveSheetIndex(0);
$value->setCellValue('A1', 'Some Number2');
$incr = 2;
foreach ($data['somedata'] as $datum) {
value->setCellValue('A'.$incr, $datum['that_number']);
}
}
$this->excel->excelObj->getActiveSheet()->setTitle('Simple');
$this->excel->excelObj->setActiveSheetIndex(0);
$tempName = $data['type'] .microtime(). '.xls';
$this->excel->getStreamWriter()->write('/tmp/'.$tempName);
}
我想你需要顯示一些代碼,如果你想獲得反饋。 – hakre 2013-03-06 21:15:59
當然,添加示例代碼在最小 – amitchhajer 2013-03-06 21:16:25
@hakre添加示例代碼 – amitchhajer 2013-03-06 21:22:21