55use App \Modules \Resources \Events \AssetCreated ;
66use App \Modules \Resources \Events \SubresourceCreated ;
77use App \Modules \Resources \Events \SubresourceDeleted ;
8+ use App \Modules \Resources \Events \ChildCreated ;
89use App \Modules \Queues \Models \Queue ;
910use App \Modules \Queues \Models \Walltime ;
1011use App \Modules \Queues \Models \Scheduler ;
@@ -22,36 +23,38 @@ class Queues
2223 */
2324 public function subscribe (Dispatcher $ events ): void
2425 {
25- $ events ->listen (AssetCreated ::class, self ::class . '@handleAssetCreated ' );
26+ $ events ->listen (ChildCreated ::class, self ::class . '@handleChildCreated ' );
2627 $ events ->listen (SubresourceCreated::class, self ::class . '@handleSubresourceCreated ' );
2728 $ events ->listen (SubresourceDeleted::class, self ::class . '@handleSubresourceDeleted ' );
2829 }
2930
3031 /**
3132 * Create a default scheduler for a new compute asset
3233 *
33- * @param AssetCreated $event
34+ * @param ChildCreated $event
3435 * @return void
3536 */
36- public function handleAssetCreated ( AssetCreated $ event ): void
37+ public function handleChildCreated ( ChildCreated $ event ): void
3738 {
38- if ($ event ->asset ->resourcetype != 1 )
39- {
40- return ;
41- }
39+ $ subresource = $ event ->child ->subresource ;
4240
43- $ child = $ event ->asset ->children ->first ();
44-
45- $ scheduler = new Scheduler ;
46- $ scheduler ->hostname = $ event ->asset ->rolename . '-adm. ' . str_replace ('www ' , '' , request ()->getHost ());
47- if ($ child )
41+ if (substr ($ subresource ->name , -strlen ('-Nonspecific ' )) == '-Nonspecific ' )
4842 {
49- $ scheduler ->queuesubresourceid = $ child ->subresourceid ;
43+ $ scheduler = Scheduler::query ()
44+ ->where ('queuesubresourceid ' , '= ' , $ subresource ->id )
45+ ->first ();
46+
47+ if (!$ scheduler )
48+ {
49+ $ scheduler = new Scheduler ;
50+ $ scheduler ->hostname = $ subresource ->resource ->rolename . '-adm. ' . str_replace ('www. ' , '' , request ()->getHost ());
51+ $ scheduler ->queuesubresourceid = $ subresource ->id ;
52+ $ scheduler ->batchsystem = $ subresource ->resource ->batchsystem ;
53+ $ scheduler ->schedulerpolicyid = 1 ;
54+ $ scheduler ->defaultmaxwalltime = 1209600 ;
55+ $ scheduler ->save ();
56+ }
5057 }
51- $ scheduler ->batchsystem = $ event ->asset ->batchsystem ;
52- $ scheduler ->schedulerpolicyid = 1 ;
53- $ scheduler ->defaultmaxwalltime = 1209600 ;
54- $ scheduler ->save ();
5558 }
5659
5760 /**
@@ -70,7 +73,6 @@ public function handleSubresourceCreated(SubresourceCreated $event): void
7073 }
7174
7275 $ queue = new Queue ;
73-
7476 $ queue ->name = config ()->get ('module.queues.prefix ' , 'system- ' ) . $ subresource ->cluster ;
7577 $ queue ->cluster = $ subresource ->cluster ;
7678 $ queue ->groupid = '-1 ' ;
0 commit comments