def main(): if len(sys.argv) < 4 or len(sys.argv) > 6: print("Usage: __name__ jobs url1 url2 [working_dir [accounts_file]]") print( " Example: __name__ 4 http://127.0.0.1:1886 http://127.0.0.1:1996 [get_account_history [accounts]]" ) print(" set jobs to 0 if you want use all processors") print(" url1 is reference url for list_accounts") exit() global wdir global errors jobs = int(sys.argv[1]) if jobs <= 0: import multiprocessing jobs = multiprocessing.cpu_count() url1 = sys.argv[2] url2 = sys.argv[3] if len(sys.argv) > 4: wdir = Path(sys.argv[4]) accounts_file = sys.argv[5] if len(sys.argv) > 5 else "" if accounts_file != "": name = re.compile("[^\r^\n]*") try: with open(accounts_file, "rt") as file: accounts = [name.match(account).group(0) for account in file] except: exit("Cannot open file: " + accounts_file) else: accounts = list_accounts(url1) length = len(accounts) if length == 0: exit("There are no any account!") create_wdir() print(str(length) + " accounts") if jobs > length: jobs = length print("setup:") print(" jobs: {}".format(jobs)) print(" url1: {}".format(url1)) print(" url2: {}".format(url2)) print(" wdir: {}".format(wdir)) print(" accounts_file: {}".format(accounts_file)) if jobs > 1: first = 0 last = length - 1 accounts_per_job = length // jobs with ProcessPoolExecutor(max_workers=jobs) as executor: for i in range(jobs - 1): executor.submit(compare_results, url1, url2, accounts[first:first + accounts_per_job - 1]) first = first + accounts_per_job executor.submit(compare_results, url1, url2, accounts[first:last]) else: compare_results(url1, url2, accounts) exit(errors)
def main(): if len(sys.argv) < 4 or len(sys.argv) > 6: print("Usage: __name__ jobs url1 url2 [working_dir [accounts_file]]") print( " Example: __name__ 4 http://127.0.0.1:8090 http://127.0.0.1:8091 [get_account_history [accounts]]" ) print(" set jobs to 0 if you want use all processors") print(" url1 is reference url for list_accounts") exit() global wdir global errors jobs = int(sys.argv[1]) if jobs <= 0: import multiprocessing jobs = multiprocessing.cpu_count() url1 = sys.argv[2] url2 = sys.argv[3] if len(sys.argv) > 4: wdir = Path(sys.argv[4]) accounts_file = sys.argv[5] if len(sys.argv) > 5 else "" if accounts_file != "": try: with open(accounts_file, "rt") as file: accounts = file.readlines() except: exit("Cannot open file: " + accounts_file) else: accounts = list_accounts(url1) length = len(accounts) if length == 0: exit("There are no any account!") create_wdir() print(str(length) + " accounts") if jobs > length: jobs = length print("setup:") print(" jobs: {}".format(jobs)) print(" url1: {}".format(url1)) print(" url2: {}".format(url2)) print(" wdir: {}".format(wdir)) print(" accounts_file: {}".format(accounts_file)) if jobs > 1: first = 0 last = length accounts_per_job = length // jobs with ProcessPoolExecutor(max_workers=jobs) as executor: for i in range(jobs - 1): future = executor.submit( compare_results, url1, url2, accounts[first:first + accounts_per_job]) future.add_done_callback(future_end_cb) first = first + accounts_per_job future = executor.submit(compare_results, url1, url2, accounts[first:last]) future.add_done_callback(future_end_cb) else: errors = (compare_results(url1, url2, accounts) == False) exit(errors)
def main(): if len( sys.argv ) < 4 or len( sys.argv ) > 6: print( "Usage: __name__ jobs url1 url2 [working_dir [accounts_file]]" ) print( " Example: __name__ 4 http://127.0.0.1:8090 http://127.0.0.1:8091 [get_account_history [accounts]]" ) print( " set jobs to 0 if you want use all processors" ) print( " url1 is reference url for list_accounts" ) exit () global wdir global errors jobs = int(sys.argv[1]) if jobs <= 0: import multiprocessing jobs = multiprocessing.cpu_count() url1 = sys.argv[2] url2 = sys.argv[3] if len( sys.argv ) > 4: wdir = Path(sys.argv[4]) accounts_file = sys.argv[5] if len( sys.argv ) > 5 else "" if accounts_file != "": try: with open(accounts_file, "rt") as file: accounts = file.readlines() except: exit("Cannot open file: " + accounts_file) else: accounts = list_accounts(url1) length = len(accounts) if length == 0: exit("There are no any account!") create_wdir() print( str(length) + " accounts" ) if jobs > length: jobs = length print( "setup:" ) print( " jobs: {}".format(jobs) ) print( " url1: {}".format(url1) ) print( " url2: {}".format(url2) ) print( " wdir: {}".format(wdir) ) print( " accounts_file: {}".format(accounts_file) ) if jobs > 1: first = 0 last = length accounts_per_job = length // jobs with ProcessPoolExecutor(max_workers=jobs) as executor: for i in range(jobs-1): future = executor.submit(compare_results, url1, url2, accounts[first : first+accounts_per_job]) future.add_done_callback(future_end_cb) first = first + accounts_per_job future = executor.submit(compare_results, url1, url2, accounts[first : last]) future.add_done_callback(future_end_cb) else: errors = (compare_results(url1, url2, accounts) == False) exit( errors )