本文整理汇总了C#中ActorSystem类的典型用法代码示例。如果您正苦于以下问题:C# ActorSystem类的具体用法?C# ActorSystem怎么用?C# ActorSystem使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
ActorSystem类属于命名空间,在下文中一共展示了ActorSystem类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Main
static void Main(string[] args)
{
// initialize MyActorSystem
MyActorSystem = ActorSystem.Create("MyActorSystem");
// time to make your first actors!
var consoleWriterActor = MyActorSystem.ActorOf(Props.Create<ConsoleWriterActor>(), "MyConsoleWriter"); // Generic syntax
// make tailCoordinatorActor
Props tailCoordinatorProps = Props.Create(() => new TailCoordinatorActor());
var tailCoordinatorActor = MyActorSystem.ActorOf(tailCoordinatorProps, "tailCoordinatorActor");
// pass tailCoordinatorActor to fileValidatorActorProps (just adding one extra arg)
Props fileValidatorActorProps = Props.Create(() => new FileValidatorActor(consoleWriterActor));
var validationActor = MyActorSystem.ActorOf(fileValidatorActorProps, "validationActor");
var consoleReaderActor = MyActorSystem.ActorOf(Props.Create(() => new ConsoleReaderActor()), "MyConsoleReader");
// tell console reader to begin
consoleReaderActor.Tell(ConsoleReaderActor.StartCommand);
// Fake start with
validationActor.Tell(@"c:\MyFile.txt");
// blocks the main thread from exiting until the actor system is shut down
MyActorSystem.AwaitTermination();
}
示例2: Main
static void Main(string[] args)
{
var section = (AkkaConfigurationSection)ConfigurationManager.GetSection("akka");
_system = ActorSystem.Create("test", section.AkkaConfig);
_coordinator = _system.ActorOf(Props.Create(() => new IdentityActor())
.WithRouter(FromConfig.Instance), "fred");
//_coordinator =
// _system.ActorOf(Props.Create(() => new IdentityActor()).WithRouter(new ConsistentHashingPool(5000)),
// "fred2");
int routees = _coordinator.Ask<Routees>(new GetRoutees()).Result.Members.Count();
Console.WriteLine(routees);
// Lazy wait for the co-ordinator to deploy.
Thread.Sleep(5000);
for (int i = 1; i <= 5000; i++)
{
for (int x = 1; x <= 4; x++)
{
_coordinator.Tell(new EntityMessage<long>(i));
}
}
Thread.Sleep(500);
Console.ReadLine();
}
示例3: SnapshotedActor
private static void SnapshotedActor(ActorSystem system)
{
Console.WriteLine("\n--- SNAPSHOTED ACTOR EXAMPLE ---\n");
var pref = system.ActorOf(Props.Create<SnapshotedExampleActor>(), "snapshoted-actor");
// send two messages (a, b) and persist them
pref.Tell("a");
pref.Tell("b");
// make a snapshot: a, b will be stored in durable memory
pref.Tell("snap");
// send next two messages - those will be cleared, since MemoryJournal is not "persistent"
pref.Tell("c");
pref.Tell("d");
// print internal actor's state
pref.Tell("print");
// result after first run should be like:
// Current actor's state: d, c, b, a
// after second run:
// Offered state (from snapshot): b, a - taken from the snapshot
// Current actor's state: d, c, b, a, b, a - 2 last messages loaded from the snapshot, rest send in this run
// after third run:
// Offered state (from snapshot): b, a, b, a - taken from the snapshot
// Current actor's state: d, c, b, a, b, a, b, a - 4 last messages loaded from the snapshot, rest send in this run
// etc...
}
示例4: ActorSelection
/// <summary>
/// Construct an <see cref="Akka.Actor.ActorSelection"/> from the given path, which is
/// parsed for wildcards (these are replaced by regular expressions
/// internally). No attempt is made to verify the existence of any part of
/// the supplied path, it is recommended to send a message and gather the
/// replies in order to resolve the matching set of actors.
/// </summary>
public static ActorSelection ActorSelection(string path, ActorSystem system, ActorRef lookupRoot)
{
var provider = ((ActorSystemImpl)system).Provider;
if(Uri.IsWellFormedUriString(path, UriKind.Absolute))
{
ActorPath actorPath;
if(!ActorPath.TryParse(path, out actorPath))
return new ActorSelection(provider.DeadLetters, "");
var actorRef = provider.RootGuardianAt(actorPath.Address);
return new ActorSelection(actorRef, actorPath.Elements);
}
//no path given
if(string.IsNullOrEmpty(path))
{
return new ActorSelection(system.DeadLetters, "");
}
//absolute path
var elements = path.Split('/');
if(elements[0] == "")
{
return new ActorSelection(provider.RootGuardian, elements.Skip(1));
}
return new ActorSelection(lookupRoot, path);
}
示例5: RunDistributedPubSubSeed
/// <summary>
/// Starts a job, which publishes <see cref="Echo"/> message to distributed cluster pub sub in 5 sec periods.
/// </summary>
static void RunDistributedPubSubSeed(ActorSystem system)
{
var mediator = DistributedPubSub.Get(system).Mediator;
system.Scheduler.ScheduleTellRepeatedly(TimeSpan.FromSeconds(5), TimeSpan.FromSeconds(5), mediator,
new Publish("echo", new Echo("hello world")), ActorRefs.NoSender);
}
示例6: Main
static void Main()
{
ChartActors = ActorSystem.Create("ChartActors");
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Main());
}
示例7: Remoting
public Remoting(ActorSystem system, RemoteActorRefProvider provider)
: base(system, provider)
{
log = Logging.GetLogger(system, "remoting");
_eventPublisher = new EventPublisher(system, log, Logging.LogLevelFor(provider.RemoteSettings.RemoteLifecycleEventsLogLevel));
_transportSupervisor = system.SystemActorOf(Props.Create<TransportSupervisor>(), "transports");
}
示例8: ToSurrogate
/// <summary>
/// Creates a surrogate representation of the current <see cref="RandomGroup"/>.
/// </summary>
/// <param name="system">The actor system that owns this router.</param>
/// <returns>The surrogate representation of the current <see cref="RandomGroup"/>.</returns>
public override ISurrogate ToSurrogate(ActorSystem system)
{
return new RandomGroupSurrogate
{
Paths = Paths
};
}
示例9: Main
private static void Main()
{
ConfigureLogging();
LogTo.Debug($"Creating ActorSystem '{ActorSystemName}'.");
_actorSystem = ActorSystem.Create(ActorSystemName);
LogTo.Debug($"Creating Props '{nameof(ProductsActor)}'.");
var props = Props.Create<ProductsActor>();
LogTo.Debug($"Creating ActorOf '{nameof(ProductsActor)}'.");
var products = _actorSystem.ActorOf(props);
LogTo.Information("Adding products.");
products.Tell(new AddProduct("Product 1"));
products.Tell(new AddProduct("Product 2"));
LogTo.Debug("Stopping products actor.");
products.GracefulStop(TimeSpan.FromMinutes(1)).Wait();
LogTo.Debug("Stopped products actor.");
LogTo.Debug("Shutting down ActorSystem");
_actorSystem.Shutdown();
LogTo.Debug("Waiting for ActorSystem to complete shutdown.");
_actorSystem.AwaitTermination();
LogTo.Information("Finished shopping :-)");
}
示例10: MainWindow_Loaded
private void MainWindow_Loaded(object sender, RoutedEventArgs e)
{
system = ActorSystem.Create("MyClientSystem");
serverActor = system.ActorSelection("akka.tcp://[email protected]:8081/user/MyServerActor");
uiActor = system.ActorOf(Props.Create(() => new UIActor(this.textBox)), "MyClient");
clientActor = system.ActorOf(Props.Create(() => new ClientActor(serverActor, uiActor)), Guid.NewGuid().ToString());
}
示例11: FixServer
public FixServer(int port)
{
_actorSystem = ActorSystem.Create("FIXServer");
// Some invented FX spot rates
var prices = new Dictionary<string, double>()
{
{ "USDGBP", 0.65575 },
{ "USDJPY", 119.75 }
};
var fixParser = new FixParser();
var tcpServerProps = Props.Create(() => new TcpServerActor(port,
FixParser.ExtractFixMessages));
Func<IActorRefFactory, IActorRef> tcpServerCreator =
(context) => context.ActorOf(tcpServerProps, "TcpServer");
var fixInterpreterProps = Props.Create(() => new FixInterpreterActor(fixParser));
Func<IActorRefFactory, IActorRef> fixInterpreterCreator =
(context) => context.ActorOf(fixInterpreterProps, "FixInterpreter");
var fixServerProps = Props.Create(() => new Actors.FixServerActor(tcpServerCreator,
fixInterpreterCreator, prices));
_fixServerActor = _actorSystem.ActorOf(fixServerProps, "FixServer");
}
示例12: TestKitBase
private TestKitBase(TestKitAssertions assertions, ActorSystem system, Config config, string actorSystemName, string testActorName)
{
if(assertions == null) throw new ArgumentNullException("assertions");
if(system == null)
{
var configWithDefaultFallback = config.SafeWithFallback(_defaultConfig);
system = ActorSystem.Create(actorSystemName ?? "test", configWithDefaultFallback);
}
_assertions = assertions;
_system = system;
system.RegisterExtension(new TestKitExtension());
system.RegisterExtension(new TestKitAssertionsExtension(assertions));
_testKitSettings = TestKitExtension.For(_system);
_queue = new BlockingQueue<MessageEnvelope>();
_log = Logging.GetLogger(system, GetType());
_eventFilterFactory = new EventFilterFactory(this);
if (string.IsNullOrEmpty(testActorName))
testActorName = "testActor" + _testActorId.IncrementAndGet();
var testActor = CreateTestActor(system, testActorName);
//Wait for the testactor to start
AwaitCondition(() =>
{
var repRef = testActor as RepointableRef;
return repRef == null || repRef.IsStarted;
}, TimeSpan.FromSeconds(5), TimeSpan.FromMilliseconds(10));
if(!(this is NoImplicitSender))
{
InternalCurrentActorCellKeeper.Current = (ActorCell)((ActorRefWithCell)testActor).Underlying;
}
_testActor = testActor;
}
示例13: RootGuardianActorRef
public RootGuardianActorRef(ActorSystem system, Props props, MessageDispatcher dispatcher, Func<Mailbox> createMailbox, //TODO: switch from Func<Mailbox> createMailbox to MailboxType mailboxType
InternalActorRef supervisor, ActorPath path, InternalActorRef deadLetters, IReadOnlyDictionary<string, InternalActorRef> extraNames)
: base(system,props,dispatcher,createMailbox,supervisor,path)
{
_deadLetters = deadLetters;
_extraNames = extraNames;
}
示例14: Main
static void Main(string[] args)
{
// initialize MyActorSystem
// YOU NEED TO FILL IN HERE
MyActorSystem = ActorSystem.Create("MyActorSystem");
// time to make your first actors!
var consoleWriterProps = Props.Create(() => new ConsoleWriterActor());
var consoleWriterActor = MyActorSystem.ActorOf(consoleWriterProps, "consoleWriterActor");
var tailCoordinatorActor = MyActorSystem.ActorOf(Props.Create<TailCoordinatorActor>(), "tailCoordinatorActor");
var validationActorProps = Props.Create(() => new FileValidatorActor(consoleWriterActor));
var validationActor = MyActorSystem.ActorOf(validationActorProps, "validationActor");
var consoleReaderProps = Props.Create<ConsoleReaderActor>();
var readerActor = MyActorSystem.ActorOf(consoleReaderProps, "consoleReaderActor");
// tell console reader to begin
//YOU NEED TO FILL IN HERE
readerActor.Tell(ConsoleReaderActor.StartCommand);
// blocks the main thread from exiting until the actor system is shut down
MyActorSystem.AwaitTermination();
}
示例15: YakkaBootstrapper
public YakkaBootstrapper()
{
var hocon = string.Format(@"
akka {{
loglevel = DEBUG
loggers = [""Akka.Logger.NLog.NLogLogger, Akka.Logger.NLog""]
actor {{
provider = ""Akka.Remote.RemoteActorRefProvider, Akka.Remote""
}}
remote {{
helios.tcp {{
port = 0
hostname = {0}
}}
}}
}}", Dns.GetHostName());
var config = ConfigurationFactory.ParseString(hocon);
var clientName = $"{ClientId}";
_clientActorSystem = ActorSystem.Create(clientName, config);
//Create root level actors. This is the actual root of the actor system, the view model bridge actors exchange messages with these
var errorHandler = _clientActorSystem.ActorOf(Props.Create(() => new ErrorDialogActor()), ClientActorPaths.ErrorDialogActor.Name);
var settingsActor = _clientActorSystem.ActorOf(Props.Create(() => new SettingsActor(errorHandler)), ClientActorPaths.SettingsActor.Name);
var clientsActor = _clientActorSystem.ActorOf(Props.Create(() => new ClientsActor()), ClientActorPaths.ClientsActor.Name);
var messager = _clientActorSystem.ActorOf(Props.Create(() => new MessagingActor()), ClientActorPaths.ChatMessageRouter.Name);
var connectionActor = _clientActorSystem.ActorOf(Props.Create(() => new ConnectionActor()), ClientActorPaths.ConnectionActor.Name);
var lockMonitor = _clientActorSystem.ActorOf(Props.Create(() => new LockMonitorActor()), ClientActorPaths.LockMonitor.Name);
Initialize();
}