| 638 | } |
| 639 | |
| 640 | void WorkThread::doCommitValueWork() { |
| 641 | |
| 642 | if(_cmd.size() <= 0) { |
| 643 | emit finishWork(_taskMsg->_taskid); |
| 644 | return; |
| 645 | } |
| 646 | |
| 647 | if(!prepare()) { |
| 648 | emit runError(_taskMsg->_taskid,_string); |
| 649 | emit finishWork(_taskMsg->_taskid); |
| 650 | return; |
| 651 | } |
| 652 | |
| 653 | qlonglong llret; |
| 654 | for(int i =0; i < _cmd.size(); ++i) { |
| 655 | switch (_cmd[i]._operate) { |
| 656 | case OPERATION_ADD: |
| 657 | if(_cmd[i]._type == KEY_HASH) { |
| 658 | if(!_redisClient->hset(_cmd[i]._key,_cmd[i]._filed,_cmd[i]._value,llret)) { |
| 659 | _string = _redisClient->getErrorInfo(); |
| 660 | emit runError(_taskMsg->_taskid,_string); |
| 661 | continue; |
| 662 | } |
| 663 | } else if(_cmd[i]._type == KEY_ZSET) { |
| 664 | if(!_redisClient->zadd(_cmd[i]._key,_cmd[i]._value,_cmd[i]._score,llret)) { |
| 665 | _string = _redisClient->getErrorInfo(); |
| 666 | emit runError(_taskMsg->_taskid,_string); |
| 667 | continue; |
| 668 | } |
| 669 | } else if(_cmd[i]._type == KEY_SET) { |
| 670 | if(!_redisClient->sadd(_cmd[i]._key,_cmd[i]._value,llret)) { |
| 671 | _string = _redisClient->getErrorInfo(); |
| 672 | emit runError(_taskMsg->_taskid,_string); |
| 673 | continue; |
| 674 | } |
| 675 | } else if(_cmd[i]._type == KEY_LIST) { |
| 676 | if(_cmd[i]._valueIndex == 1) { |
| 677 | if(!_redisClient->rpush(_cmd[i]._key,_cmd[i]._value,llret)) { |
| 678 | _string = _redisClient->getErrorInfo(); |
| 679 | emit runError(_taskMsg->_taskid,_string); |
| 680 | continue; |
| 681 | } |
| 682 | } else if(_cmd[i]._valueIndex == -1) { |
| 683 | if(!_redisClient->lpush(_cmd[i]._key,_cmd[i]._value,llret)) { |
| 684 | _string = _redisClient->getErrorInfo(); |
| 685 | emit runError(_taskMsg->_taskid,_string); |
| 686 | continue; |
| 687 | } |
| 688 | } |
| 689 | } |
| 690 | break; |
| 691 | case OPERATION_DELETE: |
| 692 | if(_cmd[i]._type == KEY_HASH) { |
| 693 | if(!_redisClient->hdel(_cmd[i]._key,_cmd[i]._filed,llret)) { |
| 694 | _string = _redisClient->getErrorInfo(); |
| 695 | emit runError(_taskMsg->_taskid,_string); |
| 696 | continue; |
| 697 | } |