producer refactor onTimeout