All Downloads are FREE. Search and download functionalities are using the official Maven repository.

snippets.controllers.Akka Maven / Gradle / Ivy

There is a newer version: 0.10.0
Show newest version
/*
 * #%L
 * Wisdom-Framework
 * %%
 * Copyright (C) 2013 - 2014 Wisdom Framework
 * %%
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *      http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * #L%
 */
package snippets.controllers;

import akka.actor.ActorRef;
import akka.actor.ActorSystem;
import org.apache.felix.ipojo.annotations.Requires;
import org.wisdom.akka.AkkaSystemService;
import scala.concurrent.duration.Duration;

import java.util.concurrent.TimeUnit;

/**
 * Demonstrate how to access Akka.
 */
public class Akka {
    // tag::akka[]
    @Requires
    AkkaSystemService akka;

    public void doSomethingWithAkka() {
        // Retrieve the default actor system
        ActorSystem system = akka.system();
    }
    // end::akka[]

    ActorRef receiver = null;

    // tag::schedule[]
    public void schedule() {
        akka.system().scheduler().schedule(
                //Initial delay 0 milliseconds
                Duration.create(0, TimeUnit.MILLISECONDS),
                //Frequency 30 minutes
                Duration.create(30, TimeUnit.MINUTES),
                receiver,
                "tick",
                akka.system().dispatcher(),
                null
        );
    }
    // end::schedule[]

    // tag::runOnce[]
    public void runOnce() {
        akka.system().scheduler().scheduleOnce(
                Duration.create(10, TimeUnit.MILLISECONDS),
                new Runnable() {
                    public void run() {
                        // ...
                    }
                },
                akka.system().dispatcher()
        );
    }
    // end::runOnce[]
}





© 2015 - 2024 Weber Informatics LLC | Privacy Policy