static void __executeBackground(byte[] buf) { oTesseractRequest r = null; string guid = Encoding.ASCII.GetString(buf); var redis = new RedisBase(new RedisSetting(REDIS_TYPE.ONLY_READ, 1000)); try { string json = redis.HGET("_OCR_REQUEST", guid); r = JsonConvert.DeserializeObject <oTesseractRequest>(json); Bitmap bitmap = redis.HGET_BITMAP(r.redis_key, r.redis_field); if (bitmap != null) { r = __ocrExecute(r, bitmap, redis); } } catch (Exception ex) { if (r != null) { string error = ex.Message + Environment.NewLine + ex.StackTrace + Environment.NewLine + "----------------" + Environment.NewLine + JsonConvert.SerializeObject(r); r.ok = -1; redis.HSET("_OCR_REQ_ERR", r.requestId, error); } } if (r != null) { redis.HSET("_OCR_REQUEST", r.requestId, JsonConvert.SerializeObject(r, Formatting.Indented)); redis.HSET("_OCR_REQ_LOG", r.requestId, r.ok.ToString()); redis.PUBLISH("__TESSERACT_OUT", r.requestId); } }