Move parameters inside async task to avoid race condition
Lock on statements to prevent multiple overlapping