public static <T1, T2, T3, T4, R> Function4<T1, T2, T3, T4, R> memoizeQuadFunctionAsync(final Function4<T1, T2, T3, T4, R> fn, ScheduledExecutorService ex, String cron) {
      Function1<Tuple4<T1, T2, T3, T4>, R> memoise2 = memoizeFunctionAsync((final Tuple4<T1, T2, T3, T4> quad) -> fn.apply(quad._1(), quad._2(), quad._3(), quad._4()), ex, cron);
        return (t1, t2, t3, t4) -> memoise2.apply(tuple(t1, t2, t3, t4));
    }
public static < T1 , T2 , T3 , T4 , R > Function4 < T1 , T2 , T3 , T4 , R > memoizeQuadFunctionAsync ( final Function4 < T1 , T2 , T3 , T4 , R > fn , ScheduledExecutorService ex , String cron ) { Function1 < Tuple4 < T1 , T2 , T3 , T4 > , R > memoise2 = memoizeFunctionAsync ( ( final Tuple4 < T1 , T2 , T3 , T4 > quad ) -> fn . apply ( quad . _1 ( ) , quad . _2 ( ) , quad . _3 ( ) , quad . _4 ( ) ) , ex , cron ) ; return ( t1 , t2 , t3 , t4 ) -> memoise2 . apply ( tuple ( t1 , t2 , t3 , t4 ) ) ; }
Memoize this function and update cached values on a schedule
Does not support null keys

@param fn  Function to Memoize
@param ex Scheduled Executor Service
@param cron Cron expression for updating cached values asynchonrously
@return Memoized asynchronously updating function