blueflood-core/src/main/java/com/rackspacecloud/blueflood/service/ScheduleContext.java
public void update(long millis, int shard) {
        // there are two update paths. for managed shards, we must guard the
        // scheduled and running collections. but for unmanaged shards, we just
        // let the update happen uncontested.
        final Timer.Context dirtyTimerCtx = markSlotDirtyTimer.time();
        try {
            if (log.isTraceEnabled()) {
                log.trace("Updating {} to {}", shard, millis);
            }
            boolean isManaged = shardStateManager.contains(shard);
            for (Granularity g : Granularity.rollupGranularities()) {
                ShardStateManager.SlotStateManager slotStateManager = shardStateManager.getSlotStateManager(shard, g);
                int slot = g.slot(millis);

                if (isManaged) {
                    synchronized (scheduledSlots) { //put
                        SlotKey key = SlotKey.of(g, slot, shard);
                        if (scheduledSlots.remove(key) && log.isDebugEnabled()) {
                            // don't worry about orderedScheduledSlots
                            log.debug("descheduled {}.", key);
                        }
                    }
                }
                slotStateManager.createOrUpdateForSlotAndMillisecond(slot, millis);
            }
        } finally {
            dirtyTimerCtx.stop();
        }
    }
public void update(long millis, int shard) {
        // there are two update paths. for managed shards, we must guard the
        // scheduled and running collections. but for unmanaged shards, we just
        // let the update happen uncontested.
        final Timer.Context dirtyTimerCtx = markSlotDirtyTimer.time();
        try {
            if (log.isTraceEnabled()) {
                log.trace("Updating {} to {}", shard, millis);
            }
            boolean isManaged = shardStateManager.contains(shard);
            for (Granularity g : Granularity.rollupGranularities()) {
                ShardStateManager.SlotStateManager slotStateManager = shardStateManager.getSlotStateManager(shard, g);
                int slot = g.slot(millis);

                if (isManaged) {
                    synchronized (scheduledSlots) { //put
                        SlotKey key = SlotKey.of(g, slot, shard);
                        if (scheduledSlots.remove(key) && log.isDebugEnabled()) {
                            // don't worry about orderedScheduledSlots
                            log.debug("descheduled {}.", key);
                        }
                    }
                }
                slotStateManager.createOrUpdateForSlotAndMillisecond(slot, millis);
            }
        } finally {
            dirtyTimerCtx.stop();
        }
    }
public void update ( long millis , int shard ) { // there are two update paths. for managed shards, we must guard the // scheduled and running collections. but for unmanaged shards, we just // let the update happen uncontested. final Timer . Context dirtyTimerCtx = markSlotDirtyTimer . time ( ) ; try { if ( log . isTraceEnabled ( ) ) { log . trace ( "Updating {} to {}" , shard , millis ) ; } boolean isManaged = shardStateManager . contains ( shard ) ; for ( Granularity g : Granularity . rollupGranularities ( ) ) { ShardStateManager . SlotStateManager slotStateManager = shardStateManager . getSlotStateManager ( shard , g ) ; int slot = g . slot ( millis ) ; if ( isManaged ) { synchronized ( scheduledSlots ) { //put SlotKey key = SlotKey . of ( g , slot , shard ) ; if ( scheduledSlots . remove ( key ) && log . isDebugEnabled ( ) ) { // don't worry about orderedScheduledSlots log . debug ( "descheduled {}." , key ) ; } } } slotStateManager . createOrUpdateForSlotAndMillisecond ( slot , millis ) ; } } finally { dirtyTimerCtx . stop ( ) ; } }
{@inheritDoc}
{