]> git.immae.eu Git - perso/Immae/Projets/Cryptomonnaies/Cryptoportfolio/Trader.git/blobdiff - main.py
Add parallelization
[perso/Immae/Projets/Cryptomonnaies/Cryptoportfolio/Trader.git] / main.py
diff --git a/main.py b/main.py
index 37f485d15c8008aaf8e1fdbc97f99e5f0cd8822a..856d449fc16cf94263c81ad45b11bcb406a12ce0 100644 (file)
--- a/main.py
+++ b/main.py
@@ -117,6 +117,8 @@ def parse_args(argv):
     parser.add_argument("--action",
             action='append',
             help="Do a different action than trading (add several times to chain)")
+    parser.add_argument("--parallel", action='store_true', default=True, dest="parallel")
+    parser.add_argument("--no-parallel", action='store_false', dest="parallel")
 
     args = parser.parse_args(argv)
 
@@ -139,8 +141,15 @@ def main(argv):
 
     pg_config, report_path = parse_config(args.config)
 
-    for market_config, user_id in fetch_markets(pg_config, args.user):
-        process(market_config, user_id, report_path, args)
+    if args.parallel:
+        import threading
+        market.Portfolio.start_worker()
+
+        for market_config, user_id in fetch_markets(pg_config, args.user):
+            threading.Thread(target=process, args=[market_config, user_id, report_path, args]).start()
+    else:
+        for market_config, user_id in fetch_markets(pg_config, args.user):
+            process(market_config, user_id, report_path, args)
 
 if __name__ == '__main__': # pragma: no cover
     main(sys.argv[1:])