public class DistributedScheduledExecutorService extends Object implements ManagedService, RemoteService, MigrationAwareService, QuorumAwareService, SplitBrainHandlerService, MembershipAwareService
Modifier and Type | Field and Description |
---|---|
static int |
MEMBER_BIN |
static String |
SERVICE_NAME |
Constructor and Description |
---|
DistributedScheduledExecutorService() |
Modifier and Type | Method and Description |
---|---|
void |
beforeMigration(PartitionMigrationEvent event)
Called before migration process starts, on both source and destination members.
|
void |
commitMigration(PartitionMigrationEvent event)
Commits the migration process for this service, on both source and destination members.
|
DistributedObject |
createDistributedObject(String name)
Creates a distributed object.
|
void |
destroyDistributedObject(String name)
Destroys a distributed object.
|
NodeEngine |
getNodeEngine() |
ScheduledExecutorPartition |
getPartition(int partitionId) |
ScheduledExecutorContainerHolder |
getPartitionOrMemberBin(int id) |
String |
getQuorumName(String name)
Gets the name of the quorum associated with specified operation name.
|
void |
init(NodeEngine nodeEngine,
Properties properties)
Initializes this service.
|
boolean |
isShutdown(String name) |
void |
memberAdded(MembershipServiceEvent event)
Invoked when a new member is added to the cluster.
|
void |
memberAttributeChanged(MemberAttributeServiceEvent event)
Invoked when a member attribute is changed.
|
void |
memberRemoved(MembershipServiceEvent event)
Invoked when an existing member leaves the cluster.
|
Runnable |
prepareMergeRunnable()
When the two separate clusters merge (resolve a split-brain), this method is called to return
a
Runnable , that will merge the clusters. |
Operation |
prepareReplicationOperation(PartitionReplicationEvent event)
Returns an operation to replicate service data and/or state for a specific partition replica
on another cluster member.
|
void |
reset()
Resets this service back to its initial state.
|
void |
rollbackMigration(PartitionMigrationEvent event)
Rollback the migration process for this service, on both source and destination members.
|
void |
shutdown(boolean terminate)
Shuts down this service.
|
void |
shutdownExecutor(String name) |
public static final String SERVICE_NAME
public static final int MEMBER_BIN
public void init(NodeEngine nodeEngine, Properties properties)
ManagedService
init
in interface ManagedService
nodeEngine
- the NodeEngine that this service belongs toproperties
- the Properties (can be used to pass settings to the service)public ScheduledExecutorPartition getPartition(int partitionId)
public ScheduledExecutorContainerHolder getPartitionOrMemberBin(int id)
public NodeEngine getNodeEngine()
public void reset()
ManagedService
TODO: what is the purpose of reset
reset
in interface ManagedService
public void shutdown(boolean terminate)
ManagedService
TODO: what is the purpose of the terminate variable
shutdown
in interface ManagedService
terminate
- true
to shut down this servicepublic DistributedObject createDistributedObject(String name)
RemoteService
createDistributedObject
in interface RemoteService
name
- the name for the created distributed objectpublic void destroyDistributedObject(String name)
RemoteService
destroyDistributedObject
in interface RemoteService
name
- the name of the distributed object to destroypublic void shutdownExecutor(String name)
public boolean isShutdown(String name)
public Operation prepareReplicationOperation(PartitionReplicationEvent event)
MigrationAwareService
This method will be called on source member whenever partitioning system requires to copy/replicate a partition replica. Returned operation will be executed on destination member. If operation fails by throwing exception, migration process will fail and will be rolled back.
Returning null is allowed and means service does not have anything to replicate.
prepareReplicationOperation
in interface MigrationAwareService
event
- replicationpublic Runnable prepareMergeRunnable()
SplitBrainHandlerService
Runnable
, that will merge the clusters.prepareMergeRunnable
in interface SplitBrainHandlerService
Runnable
that will merge the clusterspublic void beforeMigration(PartitionMigrationEvent event)
MigrationAwareService
Service can take actions required before migration. Migration process will block until this method returns. If this method fails by throwing an exception, migration process for specific partition will fail and will be rolled back.
beforeMigration
in interface MigrationAwareService
event
- migration eventpublic void commitMigration(PartitionMigrationEvent event)
MigrationAwareService
Commit is not expected to fail at this point, all exceptions will be suppressed and logged. Implementations of this method must be thread safe as this method may be called concurrently for different migrations on different partitions.
commitMigration
in interface MigrationAwareService
event
- migration eventpublic void rollbackMigration(PartitionMigrationEvent event)
MigrationAwareService
Rollback is not expected to fail at this point, all exceptions will be suppressed and logged. Implementations of this method must be thread safe as this method may be called concurrently for different migrations on different partitions.
rollbackMigration
in interface MigrationAwareService
event
- migration eventpublic void memberAdded(MembershipServiceEvent event)
MembershipAwareService
memberAdded
in interface MembershipAwareService
event
- the event for a new member added to the clusterpublic void memberRemoved(MembershipServiceEvent event)
MembershipAwareService
memberRemoved
in interface MembershipAwareService
event
- the event for an existing member leaving the clusterpublic void memberAttributeChanged(MemberAttributeServiceEvent event)
MembershipAwareService
memberAttributeChanged
in interface MembershipAwareService
event
- the event for a member attribute being changedpublic String getQuorumName(String name)
QuorumAwareService
getQuorumName
in interface QuorumAwareService
name
- the operation name for which the quorum name is returedCopyright © 2020 Hazelcast, Inc.. All Rights Reserved.