@@ -189,7 +189,7 @@ def list(self, count=None, start=None, spider=None, state=None,
189
189
190
190
def run (self , spider = None , units = None , priority = None , meta = None ,
191
191
add_tag = None , job_args = None , job_settings = None , cmd_args = None ,
192
- ** params ):
192
+ environment = None , ** params ):
193
193
"""Schedule a new job and returns its job key.
194
194
195
195
:param spider: a spider name string
@@ -201,6 +201,7 @@ def run(self, spider=None, units=None, priority=None, meta=None,
201
201
:param job_args: (optional) a dictionary with job arguments.
202
202
:param job_settings: (optional) a dictionary with job settings.
203
203
:param cmd_args: (optional) a string with script command args.
204
+ :param environment: (option) a dictionary with custom environment
204
205
:param \*\*params: (optional) additional keyword args.
205
206
206
207
:return: a job instance, representing the scheduled job.
@@ -222,12 +223,15 @@ def run(self, spider=None, units=None, priority=None, meta=None,
222
223
cleaned_args = {k : v for k , v in job_args .items ()
223
224
if k not in params }
224
225
params .update (cleaned_args )
226
+ if environment and not isinstance (environment , dict ):
227
+ raise ValueError ("environment should be a dictionary" )
225
228
226
229
params ['project' ] = self .project_id
227
230
params ['spider' ] = spider or self .spider .name
228
231
229
232
update_kwargs (params , units = units , priority = priority , add_tag = add_tag ,
230
- cmd_args = cmd_args , job_settings = job_settings , meta = meta )
233
+ cmd_args = cmd_args , job_settings = job_settings , meta = meta ,
234
+ environment = environment )
231
235
232
236
# FIXME improve to run multiple jobs
233
237
try :
0 commit comments