case class PureManifest(resolver: Resolver[PureManifestEffect]) extends ProcessingManifest[PureManifestEffect] with Impl with Product with Serializable
Manifest implementation keeping all records in State monad.
IO in type-signature should be ignored as required only by fs2.Stream#compile
Use for tests only!
- Alphabetic
- By Inheritance
- PureManifest
- Serializable
- Serializable
- Product
- Equals
- Impl
- ProcessingManifest
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Instance Constructors
- new PureManifest(resolver: Resolver[PureManifestEffect])
Type Members
-
implicit
class
PureManifestRunner[A] extends AnyRef
- Definition Classes
- Impl
Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
val
StartTime: Instant
- Definition Classes
- Impl
- def apply(records: List[Record]): PureManifestEffect[List[Record]]
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
clone(): AnyRef
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate() @throws( ... )
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
fetch(processedBy: Option[Application], state: Option[State])(implicit F: ManifestAction[PureManifestEffect], S: Sync[PureManifestEffect]): Stream[PureManifestEffect, ItemId]
- Definition Classes
- PureManifest → ProcessingManifest
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
def
getItem(id: ItemId): PureManifestEffect[Option[Item]]
Get state of single item, with validating state of
ItemGet state of single item, with validating state of
Item- Definition Classes
- PureManifest → ProcessingManifest
-
def
getItemS(id: ItemId): ManifestState[List[Record], Option[Item]]
- Definition Classes
- Impl
-
def
getUnprocessed(itemIds: Stream[PureManifestEffect, ItemId], predicate: (Item) ⇒ Boolean)(implicit S: Sync[PureManifestEffect]): PureManifestEffect[List[Item]]
Get items from collection of ids that: + were processed by
preprocessorapplication + were NOT yet processed by specifiedapplication+ matchpredicatefunction + not in "blocked" or "failed" stateGet items from collection of ids that: + were processed by
preprocessorapplication + were NOT yet processed by specifiedapplication+ matchpredicatefunction + not in "blocked" or "failed" state- predicate
filter function to get only valid
Items, e.g. containing particular payload
- Definition Classes
- ProcessingManifest
-
def
id(num: Int): UUID
- Definition Classes
- Impl
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
def
listS: ManifestState[List[Record], List[Record]]
- Definition Classes
- Impl
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
def
processAll(app: Application, predicate: (Item) ⇒ Boolean, acquirePayload: Option[Payload], process: Process)(implicit S: Sync[PureManifestEffect]): PureManifestEffect[Unit]
Apply
Processfunction to all items unprocessed byappFor each item, lock will be held.Apply
Processfunction to all items unprocessed byappFor each item, lock will be held. If any of items already holding a lock, function breaks immediately- Definition Classes
- ProcessingManifest
-
def
processItem(app: Application, acquirePayload: Option[Payload], process: Process)(item: Item): PureManifestEffect[(UUID, Instant)]
Acquire lock, apply processing function and write its result back to manifest
Acquire lock, apply processing function and write its result back to manifest
- Definition Classes
- ProcessingManifest
-
def
processNewItem(id: ItemId, app: Application, acquirePayload: Option[Payload], process: ProcessNew): PureManifestEffect[Unit]
Similar to
processItem, but works without existingItem, instead it creates new one itself or queries it by knownidShould be used whenappis both adding item to manifest and processes it straight afterwardsSimilar to
processItem, but works without existingItem, instead it creates new one itself or queries it by knownidShould be used whenappis both adding item to manifest and processes it straight afterwards- id
new item id, which should be either fetched or created
- app
application doing discovering and processing
- acquirePayload
optional payload that will be added as part of
Processing, can be e.g. notification thatappstarted to process it with some special configuration (cross-batch dedupe enabled)- process
Process that does not expect existing item
- Definition Classes
- ProcessingManifest
-
def
put(itemId: ItemId, app: Application, parentRecordId: Option[UUID], step: State, author: Option[Agent], payload: Option[Payload]): PureManifestEffect[(UUID, Instant)]
Add an atomic record to manifest
Add an atomic record to manifest
- Definition Classes
- PureManifest → ProcessingManifest
-
def
putS(itemId: ItemId, app: Application, parentRecordId: Option[UUID], step: State, author: Option[Agent], payload: Option[Payload]): ManifestState[List[Record], (UUID, Instant)]
- Definition Classes
- Impl
-
def
query(preparedBy: Option[Application], requester: Option[Application])(implicit S: Sync[PureManifestEffect]): Stream[PureManifestEffect, ItemId]
Get ids of items that were processed by
processedByand NOT processed byapplicationMost common kind of query for Processing Manifest.Get ids of items that were processed by
processedByand NOT processed byapplicationMost common kind of query for Processing Manifest.- Definition Classes
- ProcessingManifest
-
val
resolver: Resolver[PureManifestEffect]
- Definition Classes
- PureManifest → ProcessingManifest
-
def
seed(set: Set[_]): UUID
- Definition Classes
- Impl
-
def
stream(implicit S: Sync[PureManifestEffect]): Stream[PureManifestEffect, Record]
Get full manifest
Get full manifest
- Definition Classes
- PureManifest → ProcessingManifest
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
time(int: Int): Instant
- Definition Classes
- Impl
-
def
time(set: Set[_]): Instant
- Definition Classes
- Impl
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @throws( ... )
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )