@@ -681,33 +681,19 @@ int set_job_on_free_slot(scheduler_manager_ctx_t *ctx, job_t *job)
681
681
schd_executor_share_t * sdata ;
682
682
PGPROC * worker ;
683
683
bool started = false;
684
- struct timeval tv ;
685
- double begin , elapsed ;
686
684
687
685
p = job -> type == CronJob ? & (ctx -> cron ) : & (ctx -> at );
688
686
if (p -> free == 0 )
689
687
{
690
688
return -1 ;
691
689
}
692
690
693
- SetCurrentStatementStartTimestamp ();
694
-
695
- gettimeofday (& tv , NULL );
696
- begin = ((double )tv .tv_sec )* 1000 + ((double )tv .tv_usec )/1000 ;
691
+ START_SPI_SNAP ();
697
692
698
- StartTransactionCommand ();
699
- PushActiveSnapshot (GetTransactionSnapshot ());
700
- SPI_connect ();
701
693
ret = job -> type == CronJob ?
702
694
set_cron_job_started (job ): set_at_job_started (job );
703
- SPI_finish ();
704
- PopActiveSnapshot ();
705
-
706
- gettimeofday (& tv , NULL );
707
- elapsed = ((double )tv .tv_sec )* 1000 + ((double )tv .tv_usec )/1000 - begin ;
708
- elog (LOG , "move job %f" , elapsed );
709
- CommitTransactionCommand ();
710
695
696
+ START_SPI_SNAP ();
711
697
712
698
if (ret )
713
699
{
@@ -878,8 +864,6 @@ int scheduler_start_jobs(scheduler_manager_ctx_t *ctx, task_type_t type)
878
864
char * ts ;
879
865
scheduler_manager_pool_t * p ;
880
866
TimestampTz * check_time ;
881
- struct timeval tv ;
882
- double begin , elapsed ;
883
867
884
868
if (type == CronJob )
885
869
{
@@ -900,16 +884,9 @@ int scheduler_start_jobs(scheduler_manager_ctx_t *ctx, task_type_t type)
900
884
return 1 ;
901
885
}
902
886
903
- gettimeofday (& tv , NULL );
904
- begin = ((double )tv .tv_sec )* 1000 + ((double )tv .tv_usec )/1000 ;
905
887
906
888
jobs = get_jobs_to_do (ctx -> nodename , type , & njobs , & is_error , p -> free );
907
889
908
- gettimeofday (& tv , NULL );
909
- elapsed = ((double )tv .tv_sec )* 1000 + ((double )tv .tv_usec )/1000 - begin ;
910
- elog (LOG , "get todo %d = %f" , type , elapsed );
911
-
912
-
913
890
nwaiting = njobs ;
914
891
if (is_error )
915
892
{
@@ -929,19 +906,16 @@ int scheduler_start_jobs(scheduler_manager_ctx_t *ctx, task_type_t type)
929
906
N = p -> free ;
930
907
if (N > nwaiting ) N = nwaiting ;
931
908
932
- /* START_SPI_SNAP(); */
933
909
934
910
for (i = start_i ; i < N + start_i ; i ++ )
935
911
{
936
912
ni = type == CronJob ?
937
913
how_many_instances_on_work (ctx , & (jobs [i ])): 100000 ;
938
914
if (type == CronJob && ni >= jobs [i ].max_instances )
939
915
{
940
- /* START_SPI_SNAP(); */
941
916
set_job_error (& jobs [i ], "max instances limit reached" );
942
917
move_job_to_log (& jobs [i ], false, false);
943
918
destroy_job (& jobs [i ], 0 );
944
- /* STOP_SPI_SNAP(); */
945
919
jobs [i ].cron_id = -1 ;
946
920
}
947
921
else
@@ -964,21 +938,13 @@ int scheduler_start_jobs(scheduler_manager_ctx_t *ctx, task_type_t type)
964
938
elog (ERROR , "Cannot set job to free slot type=%d, id=%d" ,
965
939
jobs [i ].type , jobs [i ].cron_id );
966
940
}
967
- /* START_SPI_SNAP(); */
968
941
move_job_to_log (& jobs [i ], false, false);
969
942
destroy_job (& jobs [i ], 0 );
970
943
jobs [i ].cron_id = -1 ;
971
- /* STOP_SPI_SNAP(); */
972
944
}
973
- gettimeofday (& tv , NULL );
974
- elapsed = ((double )tv .tv_sec )* 1000 + ((double )tv .tv_usec )/1000 - begin ;
975
- elog (LOG , "get todo %d set one job = %f" , type , elapsed );
976
945
}
977
946
}
978
947
979
- /* STOP_SPI_SNAP(); */
980
-
981
-
982
948
if (N < nwaiting )
983
949
{
984
950
start_i += N ;
@@ -1597,7 +1563,7 @@ int start_at_worker(scheduler_manager_ctx_t *ctx, int pos)
1597
1563
worker .bgw_main_arg = UInt32GetDatum (dsm_segment_handle (seg ));
1598
1564
sprintf (worker .bgw_library_name , "pgpro_scheduler" );
1599
1565
sprintf (worker .bgw_function_name , "at_executor_worker_main" );
1600
- snprintf (worker .bgw_name , BGW_MAXLEN , "scheduler executor %s" , shm_data -> database );
1566
+ snprintf (worker .bgw_name , BGW_MAXLEN , "scheduler at- executor %s" , shm_data -> database );
1601
1567
worker .bgw_notify_pid = MyProcPid ;
1602
1568
1603
1569
if (!RegisterDynamicBackgroundWorker (& worker , & (item -> handler )))
0 commit comments