MCPcopy Create free account
hub / github.com/cc20110101/RedisView / doBatchScanKeyWork

Method doBatchScanKeyWork

src/RedisView/Public/WorkThread.cpp:876–909  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

874}
875
876void WorkThread::doBatchScanKeyWork()
877{
878 if(!prepare()) {
879 emit runError(_taskMsg->_taskid,_string);
880 emit finishWork(_taskMsg->_taskid);
881 return;
882 }
883
884 if(cancle())
885 return;
886
887 _sendMsg = *_taskMsg;
888 _sendMsg._list.clear();
889 QStringList vKeyPattern = _taskMsg->_keyPattern.split(_taskMsg->_key, QString::SkipEmptyParts);
890 for(int i = 0; i < vKeyPattern.size(); ++i) {
891 _sendMsg._key = vKeyPattern[i];
892 do {
893 if(_redisClient->scan(vKeyPattern[i], _respValue, _cursor, BATCH_SCAN_NUM)) {
894 _cursor = _respValue._arrayValue[0]._stringValue.toLongLong();
895 _sendMsg._sequence = _respValue._arrayValue[1]._arrayValue.size();
896 emit sendData(_sendMsg);
897 } else {
898 _cursor = 0;
899 }
900 _respValue.init();
901 if(cancle())
902 return;
903 } while(_cursor);
904 if(cancle())
905 return;
906 }
907
908 destroy();
909}
910
911void WorkThread::doBatchExportWork(int taskid) {
912 if(!prepare()) {

Callers

nothing calls this directly

Calls 3

scanMethod · 0.80
clearMethod · 0.45
initMethod · 0.45

Tested by

no test coverage detected