Object/Class

com.snowplowanalytics.manifest.core

LockHandler

Related Docs: class LockHandler | package core

Permalink

object LockHandler extends Serializable

Linear Supertypes
Serializable, Serializable, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. LockHandler
  2. Serializable
  3. Serializable
  4. AnyRef
  5. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. type PutFunction[F[_], A] = (Application, Item, UUID, A) ⇒ F[(UUID, Instant)]

    Permalink

    Wrapper for function that performs put and can add some payload of A

Value Members

  1. final def !=(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  4. def Default[F[_]](manifest: ProcessingManifest[F]): LockHandler[F]

    Permalink

    Default handler, adding Processing for acquire and Processed for release

  5. def acquire[F[_]](manifest: ProcessingManifest[F])(app: Application, item: Item, payload: Option[Payload]): F[(UUID, Instant)]

    Permalink

    Acquire lock by adding Processing state to the Item Only processing-apps should acquire lock (no snowplowctl)

    Acquire lock by adding Processing state to the Item Only processing-apps should acquire lock (no snowplowctl)

    It performs two Item-checks: one *before* acquiring lock, to check that application is still working with unchanged item (some time might pass since we received Item - it even could happen in batch); one *after* acquiring lock, to check that meanwhile put-request was sent no other application attempted to write to this item It acquires lock for particular application, but will also fail because of "race condition" if any other application attempted to write

    app

    application that tries to acquire lock

    item

    original unprocessed item, from batch of items

    payload

    payload that will be add to Processing record

    returns

    time of adding Processing within MonadError effect, telling if acquisition was successful

  6. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  7. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  8. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  9. def equals(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  10. final def fail[F[_]](manifest: ProcessingManifest[F])(app: Application, item: Item, previous: UUID, throwable: Throwable): F[(UUID, Instant)]

    Permalink

    Helper to mark Item as Failed (put Failed)

  11. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  12. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
  13. def hashCode(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  14. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  15. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  16. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
  17. final def notifyAll(): Unit

    Permalink
    Definition Classes
    AnyRef
  18. final def release[F[_]](manifest: ProcessingManifest[F])(app: Application, item: Item, previous: UUID, payload: Option[Payload]): F[(UUID, Instant)]

    Permalink

    Helper to release lock (put Processed)

  19. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  20. def toString(): String

    Permalink
    Definition Classes
    AnyRef → Any
  21. final def wait(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  22. final def wait(arg0: Long, arg1: Int): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  23. final def wait(arg0: Long): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from Serializable

Inherited from Serializable

Inherited from AnyRef

Inherited from Any

Ungrouped