summaryrefslogtreecommitdiff
path: root/Code/test_redis_publish2.py
blob: eeda27daad830411ba49eaf52a14a2afad808041 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import redis
from configure import DAILY_MAP_NUMBER, MIN_FASTQ_FILE_SIZE, RNA_SEQ_INFO_FILE, DOWNLOADED_SRA_ID_LOG_FILE, IGNORED_SRA_ID_LOG_FILE, UPDATE_NETWORK_LOG_FILE, MAPPED_RDATA_DIR, RAW_RDATA_DIR, SALMON_MAP_RESULT_DIR, REDIS_CHANNEL
import json, glob, os, time
from datetime import datetime
def publish(mapped_data_directory):
    redis_host = os.getenv('REDIS_HOST', '127.0.0.1')
    #redis_host = os.getenv('REDIS_HOST', '0.0.0.0')
    redis_password = os.getenv('REDIS_PASSWORD', '123456')
    print(redis_password)
    r = redis.Redis(host=redis_host, port=6379, password=redis_password, db=0)
    r.publish(REDIS_CHANNEL, json.dumps({'filename':'REDIS_START.txt', 'data':str(datetime.now())}))
    for fname in glob.glob('%s/*_quant.txt' % (mapped_data_directory.rstrip('/'))):
        print(fname)
        try:
            file_basename = os.path.basename(fname)
            with open(fname, 'r') as f:
                data = f.read()
            r.publish(REDIS_CHANNEL, json.dumps({'filename':file_basename, 'data':data}))
            time.sleep(3)
        except Exception as e:
            print(f'ERROR {e}')
            r.publish(REDIS_CHANNEL, json.dumps({'filename':'REDIS_ERROR.txt', 'data':str(e)}))


# after mapping is finished, move all resulting files to MAPPED_RDATA_DIR
if glob.glob('%s/*_quant.txt' % (SALMON_MAP_RESULT_DIR.rstrip('/'))) != []:
    publish(SALMON_MAP_RESULT_DIR)
    #cmd = 'mv %s/*_quant.txt %s' % (SALMON_MAP_RESULT_DIR.rstrip('/'), MAPPED_RDATA_DIR)
    #os.system(cmd)
    print('[download_and_map.py] Done. Check directory %s.' % (os.path.abspath(MAPPED_RDATA_DIR)))
else:
    print('[download_and_map.py] No quant files to move.')