add timeout to Job#perform