@@ -38,6 +38,8 @@ class GeofenceMembershipManager(models.Model):
3838 _name = "spp.program.membership.manager.geofence"
3939 _inherit = ["spp.program.membership.manager" , "spp.manager.source.mixin" ]
4040 _description = "Geofence Eligibility Manager"
41+ ASYNC_IMPORT_THRESHOLD = 1000
42+ IMPORT_CHUNK_SIZE = 10000
4143
4244 include_area_fallback = fields .Boolean (
4345 default = True ,
@@ -187,7 +189,7 @@ def import_eligible_registrants(self, state="draft"):
187189 new_beneficiaries = new_beneficiaries .filtered (lambda r : r .id not in existing_partner_ids )
188190
189191 ben_count = len (new_beneficiaries )
190- if ben_count < 1000 :
192+ if ben_count < self . ASYNC_IMPORT_THRESHOLD :
191193 self ._import_registrants (new_beneficiaries , state = state , do_count = True )
192194 else :
193195 self ._import_registrants_async (new_beneficiaries , state = state )
@@ -200,10 +202,10 @@ def _import_registrants_async(self, new_beneficiaries, state="draft"):
200202 program .write ({"is_locked" : True , "locked_reason" : "Importing beneficiaries" })
201203
202204 jobs = []
203- for i in range (0 , len (new_beneficiaries ), 10000 ):
205+ for i in range (0 , len (new_beneficiaries ), self . IMPORT_CHUNK_SIZE ):
204206 jobs .append (
205207 self .delayable (channel = "root_program.eligibility_manager" )._import_registrants (
206- new_beneficiaries [i : i + 10000 ], state
208+ new_beneficiaries [i : i + self . IMPORT_CHUNK_SIZE ], state
207209 )
208210 )
209211 main_job = group (* jobs )
0 commit comments