@@ -139,12 +139,26 @@ def main():
139139 with config_path .open () as f :
140140 config_data = yaml .safe_load (f )
141141
142- tracker = TaskTracker ()
143- DB_PATH = tracker .db_path
142+ # Use a shared location for the database
143+ script_dir = Path ("cmor_job_scripts" )
144+ script_dir .mkdir (exist_ok = True )
145+
146+ # Put database in the script directory (which should be on a shared filesystem)
147+ db_path = script_dir / "cmor_tasks.db"
148+ tracker = TaskTracker (db_path )
149+
150+ # Pre-populate all tasks
151+ experiment_id = config_data ["experiment_id" ]
152+ for variable in config_data ["variables" ]:
153+ tracker .add_task (variable , experiment_id )
154+
155+ print (
156+ f"Database initialized with { len (config_data ['variables' ])} tasks at: { db_path } "
157+ )
144158
145159 # Start Streamlit dashboard
146160 DASHBOARD_SCRIPT = files ("access_mopper.dashboard" ).joinpath ("cmor_dashboard.py" )
147- start_dashboard (str (DASHBOARD_SCRIPT ), str (DB_PATH ))
161+ start_dashboard (str (DASHBOARD_SCRIPT ), str (db_path ))
148162
149163 # Create directory for job scripts
150164 script_dir = Path ("cmor_job_scripts" )
@@ -158,7 +172,7 @@ def main():
158172
159173 for variable in variables :
160174 # Create job script
161- script_path = create_job_script (variable , config_data , str (DB_PATH ), script_dir )
175+ script_path = create_job_script (variable , config_data , str (db_path ), script_dir )
162176 print (f"Created job script: { script_path } " )
163177
164178 # Submit job
0 commit comments