cache long running async function results to redis